Slide 1

Slide 1 text

(C)Copyright 1996-2016 SAKURA Internet Inc. 2016/07/30 さくらインターネット 横田真俊(@Wslash)

Slide 2

Slide 2 text

今日の補助資料は https://github.com/wslash/zabbix3 もしくは https://goo.gl/7yUlJn で確認できます。 2

Slide 3

Slide 3 text

(1)「さくらのクラウド」を利用して、自分でサーバを構築する のに慣れてもらいます。 (2)サーバでローカルネットを組んでいただきます。 (3)Dockerを利用してみます 3

Slide 4

Slide 4 text

(6)Dockerを利用してみよう (5)WordPressをインストールしてみよう (4)ローカルネットワークを構築してみよう (3)サーバを拡張してみよう (2)サーバを作成してみよう (1)コントロールパネルにログインしてみよう 4

Slide 5

Slide 5 text

(C)Copyright 1996-2016 SAKURA Internet Inc.

Slide 6

Slide 6 text

6 さくらのクラウドでは、会員IDとは独立したさくらのクラウド専用の 「ユーザ」を作成し、この専用「ユーザ」を使用してログインする形式 となります。(今回のハンズオンは「ユーザ」を利用します。)

Slide 7

Slide 7 text

7 コントロールパネルへのログイン認証の単位となる「ユーザ」とリソー スの作業空間となる「アカウント」の作成が必要となります

Slide 8

Slide 8 text

8 ユーザには、そのユーザが操作可能となるアカウントを紐付ける設定を 行うことが可能です。この操作は「会員ID」でのログインのみ可能です

Slide 9

Slide 9 text

9 「コントロールパネル」にログインするには、Webサイトの上部にある 「コントロールパネルログイン」をクリックしてください

Slide 10

Slide 10 text

10 「コントロールパネル」にログインしたら「さくらのクラウドユーザ」 としてログインの箇所にある「ユーザコード」「会員ID」 「パスワード」を入力してください

Slide 11

Slide 11 text

11 無事にログインできたら、このような画面が表示されますので 「さくらのクラウド(IaaS)」をクリックしてください

Slide 12

Slide 12 text

12 さくらのクラウド(IaaS) をクリックすると このような画面が表示されます

Slide 13

Slide 13 text

13 (1)ゾーン切替ボタン (3)メインメニュー (2)リフレッシュボタン (5)設定ボタン (6)アカウント切り替え (7)フィードバックボタン (4)検索窓

Slide 14

Slide 14 text

14 設定対象となるゾーンの切替をおこないます。ゾーンとは、それぞれ独 立したシステム群を指し、各ゾーンで障害が発生した場合でも、他の ゾーンには影響はありません

Slide 15

Slide 15 text

15 コントロールパネルの画面更新を行うボタンです。画面更新を行う場合 は1度、こちらのボタンを押してください

Slide 16

Slide 16 text

16 「さくらのクラウド」の各機能の画面に移動するリンクです。サーバや ストレージなどのリソースを作成、管理する画面に移動します。

Slide 17

Slide 17 text

17 検索窓から自分のサーバリソースを検索できます。

Slide 18

Slide 18 text

18 現在利用している「アカウント」を切り替えるにはアカウント名の右上 にあるボタンをクリックするとアカウントの切り替えやログアウトがで きます。

Slide 19

Slide 19 text

19 コントロールパネル内の不具合や機能要望を伝えることができます

Slide 20

Slide 20 text

(C)Copyright 1996-2016 SAKURA Internet Inc.

Slide 21

Slide 21 text

21 ・まずは、CPU 1ギガ、メモリ 1GB、ディスク SSD 20GB、NIC 1のもので OSはCent OS 6.7の物を作成してみましょう

Slide 22

Slide 22 text

22 ・メインメニューより「サーバ」をクリック ・その後「追加」をクリックすると「サーバ作成画面」に移動します

Slide 23

Slide 23 text

23 まず「ホスト名」を入力し、次にサーバプランを選択します。今回はホスト 名は適当に入力し、サーバプランは「1GB/1仮想コア」を選択します。

Slide 24

Slide 24 text

24 ボタンにないプランの場合は「全てのアイテムから選択」を選択すると アイテム一覧が表示され、そこから選択できます

Slide 25

Slide 25 text

25 次に「ディスクプラン」を選択します。今回は「20GB SSDプラン」を選択 します。上記のプランにない物を利用する場合は、サーバと同じように「全 てのアイテムから選択」を選択してください。

Slide 26

Slide 26 text

26 ディスクイメージを選択します、利用したい「OS」を選択してください。 今回は「CentOS 6.7」を利用します。

Slide 27

Slide 27 text

27 接続のネットワークに「インターネット」を選択し「管理ユーザのパスワー ド」でrootのパスワードを入力します。

Slide 28

Slide 28 text

28 全ての入力項目を入力し終わった後「作成」をクリックします

Slide 29

Slide 29 text

29 「操作確認」のダイアログが表示されます。問題が無ければ「作成」をク リックします。

Slide 30

Slide 30 text

30 「作成」をクリックすると上記のダイアログが出てきます。 ステータスが全て成功になるとサーバが作成されます。

Slide 31

Slide 31 text

31 サーバの作成が完了すると、画面の右下にダイアログが表示されます。これ をクリックしてください。

Slide 32

Slide 32 text

32 ダイアログをクリックすると、サーバ情報が表示されます。

Slide 33

Slide 33 text

33 画面のコンソールをクリックすると「リモートコンソール」が表示されます。

Slide 34

Slide 34 text

34 「リモートコンソール」を操作するには、リモートスクリーン全体をクリッ クするとコマンドを入力できます。

Slide 35

Slide 35 text

35 「クリックしてサーバを表示」をクリックすると、作成したサーバの情報が 表示されます。(表示されない場合は「情報」をクリックしてください)

Slide 36

Slide 36 text

36 「電源操作」タブをクリックすると、サーバの起動やシャットダウンが選択 できます。サーバを起動するには「起動」を選択します。

Slide 37

Slide 37 text

37 ・サーバの起動すると上記の画面がポップアップされます。「成功」が表示 されました「閉じる」をクリックしてください

Slide 38

Slide 38 text

(C)Copyright 1996-2016 SAKURA Internet Inc.

Slide 39

Slide 39 text

39 さきほど作ったサーバのCPUとメモリを倍増し、さらにNICを追加してみま しょう

Slide 40

Slide 40 text

40 サーバのリソースを追加するためには、サーバを停止させる必要があります。 右上にある「電源操作」から「シャットダウン」を選択してください

Slide 41

Slide 41 text

41 ・「NIC」をクリックして、右下に表示される「追加」をクリックしてくだ さい。そうすると、NICが追加されます

Slide 42

Slide 42 text

42 CPUとメモリを変更するには、変更したいサーバをダブルクリックしてから 「プラン変更」をクリックしてください

Slide 43

Slide 43 text

43 サーバ作成時と同様にCPUとメモリを変更できます。CPUを2コア、メモリ を2GBにして「プラン変更」をクリックしてください

Slide 44

Slide 44 text

44 「プラン変更」が完了すると、この画面が表示されます

Slide 45

Slide 45 text

(C)Copyright 1996-2016 SAKURA Internet Inc.

Slide 46

Slide 46 text

46 今回はこのようなローカルネッ トワークを構築してみます そのためスイッチとローカルに 設置するサーバを作ります

Slide 47

Slide 47 text

47 「スイッチ」や「ルータ+スイッチ」を追加するには「スイッチ」を クリックします、その後「追加」をクリックすると「スイッチ」を追加でき ます

Slide 48

Slide 48 text

48 「名前」や「説明」を追加して「ルータ」の項目を「いいえ」にする その後「作成」をクリックしてください

Slide 49

Slide 49 text

49 サーバ作成時に「NIC」の項目を「スイッチに接続」にして先ほどのスイッ チを選択してください、ディスク修正についてはIPアドレスを 「192.168.0.2」ゲートウェイを「192.168.0.1」ネットマスク「24」にし てください

Slide 50

Slide 50 text

50 ・設定したい項目(ここでは「未接続」)の一番右の「▼」をクリックして 「接続を編集」をクリックしてください

Slide 51

Slide 51 text

51 スイッチの編集画面が表示されます。「スイッチに接続」を選択した後先ほ ど作成した「スイッチに接続」を選択し更新をクリックしてください。接続 が終わったら、2台ともサーバを起動しましょう

Slide 52

Slide 52 text

52 「さくらのクラウド」では、サーバやスイッチがどのように接続されている かがわかる「マップ」機能があります。メインメニューの「マップ」をク リックして、先ほど作ったネットワークをマップでみてみましょう

Slide 53

Slide 53 text

53 マップ画面では、ネットワークやサーバなどの要素を自由に動かすことが可 能です

Slide 54

Slide 54 text

54 マップ画面でグローバル側のサーバをクリックした後「コンソール」をク リックします

Slide 55

Slide 55 text

55 コンソール画面が表示されます。サーバを作成した時に設定したrootパス ワードを使用しログインができることを確認してください

Slide 56

Slide 56 text

• 次のコマンドを入力してください このコマンドを入力して「eth01」が登録されて いるか確認してください 次にIPアドレスを設定します 56 ifconfig –a ifconfig eth1 192.168.0.1/24

Slide 57

Slide 57 text

もし「ifconfig」を打っても、正常にIPアドレスが 表示されない場合は、Cent OS7がインストール されている可能性があります。 その場合は以下のコマンドを試してみてください。 57

Slide 58

Slide 58 text

• 次のコマンドを入力してください このコマンドを入力して「eth1」が登録されてい るか確認してください 次にIPアドレスを設定します 58 ip a ip addr add 192.168.0.1/24 dev eth1

Slide 59

Slide 59 text

これで2台のサーバにローカルネットワークが設 定された状態になりました 確認としてローカルネットワーク側にpingを 打ってみましょう 59 ping 192.168.0.2

Slide 60

Slide 60 text

(C)Copyright 1996-2016 SAKURA Internet Inc.

Slide 61

Slide 61 text

61 サーバの作成画面の「スタートアップスクリプト」の項目で「WordPress」 を選択するだけで簡単にインストールできます。

Slide 62

Slide 62 text

62 今日は残念ながら、WordPressを構成するミドルウェアを わざ々、1つずつインストールしていきます

Slide 63

Slide 63 text

63 WordPressのようなプログラムは「Webサーバ」「アプリ部分 (WordPress)」「DBサーバ(データベースサーバ)」で動く 「新米サーバ/インフラ担当者のための 仮想サーバ/クラウド技術の常識」より

Slide 64

Slide 64 text

64 ○Webサーバ 主にWebページを表示させるサーバ、利用されるソフトウェアと してApacheやnginxといった物が有名。 ○Appサーバ アプリケーションを動かすサーバ。前のページでは WordPress(PHPプログラム)がそれにあたる ○DBサーバ データを格納する大事なサーバ。利用されるソフトウェアとして MySQLなどが有名 それぞれはソフトウェアなので「Webサーバ」「Appサーバ」 「DBサーバ」を1台のサーバに入れることもできる

Slide 65

Slide 65 text

65 というわけで、サーバのミドルウェアを知るために 今回は1つ々、インストールしていきたいと思います

Slide 66

Slide 66 text

66 WordPress用に、CPU 1ギガ、メモリ 1GB、ディスク SSD 20GB、NIC 1 のものでOSはCent OS 6.7の物を作成してみましょう

Slide 67

Slide 67 text

コンソールなどで次のコマンドを入力してくださ い このコマンドを入力することで、CentOSを最新 版にすることができます。 67 yum -y update

Slide 68

Slide 68 text

68 終わると、こんな画面が出てきます。

Slide 69

Slide 69 text

コンソールなどで次のコマンドを入力してくださ い このコマンドを入力することで ・Apacheサーバ(httpd) ・MySQLサーバ ・PHP をインストールできます。 69 yum install –y httpd php mysql-server php-mysql

Slide 70

Slide 70 text

70 service httpd start 上記のコマンドを入力すると Apacheが起動します。

Slide 71

Slide 71 text

71 正常にApacheのサーバをインストールが終わった場合 サーバのIPアドレスをブラウザ入れると上記の画面が出てきます

Slide 72

Slide 72 text

72 service mysqld start 上記のコマンドを入力するとMySQL(データベース) が起動します。

Slide 73

Slide 73 text

73 /usr/bin/mysqladmin -u root password 'パスワード' MySQLサーバが起動したら、MySQLのユーザを作成します。 ここではrootというユーザを作成し、パスワードを設定します。’ パスワード’と書かれているところに自分で設定したパスワード を入力してください。 「Warning: Using a password on the command line interface can be insecure.」と出ますが気にしないでください

Slide 74

Slide 74 text

74 mysql -u root -p 上記のコマンドを入力して、先ほど入力したパスワード を入力すると、MySQLの中に入れます

Slide 75

Slide 75 text

75 create database wp; データベース「wp」を作成します

Slide 76

Slide 76 text

76 grant all privileges on wp.* to wp@localhost identified by 'PASSWORD'; 上記コマンドで データベースにアクセスするための「wp」という ユーザとパスワードを設定します。

Slide 77

Slide 77 text

77 ¥q 「¥q」でMySQLを抜けます

Slide 78

Slide 78 text

78 vi /etc/php.ini viというエディッタで「php.ini」というファイルを編 集します。ファイルを開いた後「/date.timezone」を 入力して、編集する箇所に移動します。

Slide 79

Slide 79 text

79 [Date] ; Defines the default timezone used by the date functions ; http://www.php.net/manual/en/datetime.configuration.php#ini.date. timezone ;date.timezone = [Date] ; Defines the default timezone used by the date functions ; http://www.php.net/manual/en/datetime.configuration.php#ini.date. timezone date.timezone = "Asia/Tokyo" 上記のように「date.timezone」を書き換えます。「a」を入力して文字を 入力できるようにして「date.timezone」の箇所を書き換えます。 その後「Ecs」を入力して「:wq」を入力します

Slide 80

Slide 80 text

80 service httpd restart 編集した「php.ini」を反映させるためにApacheの再起 動を行います。

Slide 81

Slide 81 text

81 vi /var/www/html/index.php 上記コマンドでviというエディッタで新しいファイルを作製します。 「a」を押して下記の文字列を入力してください。 入力が終わったら「Esc」を押した後「:wq」を入力してください。

Slide 82

Slide 82 text

82 設定が終わって、サーバのIPアドレスをたたくと 上記のような画面がでてきます。

Slide 83

Slide 83 text

83 cd /var/www/html 上記コマンドで「 /var/www/html 」のディレクトリに 移動します。

Slide 84

Slide 84 text

84 wget https://ja.wordpress.org/latest-ja.tar.gz 上記コマンドでWordPressをダウンロードします。

Slide 85

Slide 85 text

85 tar zxf latest-ja.tar.gz 上記コマンドでWordPressを解凍します。

Slide 86

Slide 86 text

86 chown -R apache:apache wordpress 展開したディレクトリとファイルの所有権を変更します

Slide 87

Slide 87 text

87 IPアドレス/wordpress/wp-admin/install.php ブラウザに上記の情報を入れてみてください

Slide 88

Slide 88 text

88 成功すると上記の画面が出てきます 「さあ、始めましょう」をクリックしてください。

Slide 89

Slide 89 text

89 成功すると上記の画面が出てきます

Slide 90

Slide 90 text

• データベース名 create databaseコマンドで指定したデータベース名で す。「wp」としましたので、wpを指定します。 • ユーザ名 grantコマンドで指定したユーザ名です。こちらも 「wp」としましたので、wpを指定します。 • パスワード 同じくgrantコマンドで指定したパスワードです。同じも のを指定してください。 「データベースのホスト名」と「テーブル接頭辞」は変更 しないでください 90

Slide 91

Slide 91 text

91 成功すると上記の画面が出てきます 「インストール実行」を押してください。

Slide 92

Slide 92 text

92 パスワードを自分で入力して設定を終わらせてください

Slide 93

Slide 93 text

93 「http://(IPアドレス)/wordpress/」で表示ができれば WordPressのインストールは成功です。

Slide 94

Slide 94 text

(C)Copyright 1996-2016 SAKURA Internet Inc.

Slide 95

Slide 95 text

95 今までのサーバとは別に「Docker」用のサーバを作成してみましょう。 今回はインストールするOSは「Cent OS 6系」ではなく「Cent OS 7系」を 利用いたします。

Slide 96

Slide 96 text

96 「curl -sSL https://get.docker.com/ | sh」とコマンドを入れるとDocker のインストールがはじまります。 curl -sSL https://get.docker.com/ | sh

Slide 97

Slide 97 text

97 「systemctl start docker」とコマンドを入れるとDockerが動きます systemctl start docker

Slide 98

Slide 98 text

98 「docker version」と入力してDockerのバージョンが表示されれば、 Dockerが正常にインストールされています。 docker version

Slide 99

Slide 99 text

99 コンテナを起動する「docker run」

Slide 100

Slide 100 text

■docker run コマンド → 指定したイメージのコンテナを起動する ■構文 → docker run イメージ [オプション][コマンド][引数] ■オプション → -d バックグランドで実行 → -i コンテナの標準入力を開く → -t ttyを確保する → -p ポートフォワード 100

Slide 101

Slide 101 text

101 ちゃんとDockerが動くか「hello world」を動かしてみたいと思います。 上記のコマンドを入力してください。 docker run hello-world

Slide 102

Slide 102 text

102 「hello world」の入力が終わると、上記のような画面が表示されます。

Slide 103

Slide 103 text

103 これだけではつまらないので アプリを入れてみましょう

Slide 104

Slide 104 text

104 「Ghost」は最近、人気が出ているNode.js製の軽量ブログエンジンです。 今回はDockerを利用して、コマンド1発でインストールします。

Slide 105

Slide 105 text

• Node.jsとnpm • ApacheとかのWebサーバ • その他、色々 105 「Ghost」をインストールして利用するには上記のような物を色々とインス トールする必要があり面倒です。

Slide 106

Slide 106 text

106 Ghostを80番ポートで利用できるようにします。元々Ghostは2368番ポート で動いているので80番ポートとマッピングさせます。 docker run -p 80:2368 -d ghost

Slide 107

Slide 107 text

107 インストールが終わったら「(IPアドレス)」をブラウザで入力してください。 上記のような「画面」が表示されます。「(IPアドレス)/admin」でGhostの セットができます。

Slide 108

Slide 108 text

108 起動を確認したら、このコンテナを止めてみましょう。コンテナの止め方は 「docker stop (コンテナのID)」で止りますので「docker ps」でコンテナ IDを調べます。 docker ps

Slide 109

Slide 109 text

109 「docker ps」を入力して「CONTANER ID」を確認する。

Slide 110

Slide 110 text

110 「docker stop (コンテナのID)」を入力すると、ghostのコンテナが止りま す。(先ほどの例だと07a4e04f6418となります。) docker stop (CONTANER ID)

Slide 111

Slide 111 text

111 Dockerを使って、もっと簡単に WordPressを作る

Slide 112

Slide 112 text

112 上記のコマンドを入力すると、色々とダウンロードがはじまる。 docker run wordpress

Slide 113

Slide 113 text

113 エラーが出てWordPressが起動できない、どうやらMySQLが必要な様子。 というわけで、MySQLのコンテナを持ってくる。

Slide 114

Slide 114 text

114 「docker pull [イメージ名]」でコンテナのダウンロードがはじまります。 ちなみに「docker run [イメージ名]」をした時にローカルにコンテナイメー ジがないと自動的にダウンロードされます docker pull mysql

Slide 115

Slide 115 text

115 わかりやすいように –eを利用することでMySQLのパスワードの設定が可能 となります。パスワードには、任意のパスワードを入れてください docker run --name mysql -e MYSQL_ROOT_PASSWORD=パスワード -d mysql

Slide 116

Slide 116 text

116 上記のコマンドを入力するとWordPressが立ち上がります。「-- link」は、- -link <連携したいコンテナ名>:<エイリアス名>オプションで新しいコンテ ナを起動すると,そのコンテナ内で連携したいコンテナのポート番号やIPを 環境変数として利用できるという機能です docker run --name wordpress --link mysql:mysql -p 80:80 wordpress

Slide 117

Slide 117 text

117 インストールに成功するとこんな画面が出てきます。

Slide 118

Slide 118 text

118

Slide 119

Slide 119 text

119 「-d」を指定していないので「ctrl + c」を入力すると、このコンテナ自体 も停止してしまいます。 それでは、次はバッグランドでWordPressを起動してみましょう。 ただし、同じ名前のコンテナ(-- nemae以下)は作れないので、名前を変え てみましょう。

Slide 120

Slide 120 text

120 上記のコマンドを入力するとWordPressが起動します。起動するのを確認し たら、docker killで落としてみましょう。 docker run --name wordpress2 -d --link mysql:mysql -p 80:80 wordpress

Slide 121

Slide 121 text

121 Docker Compose

Slide 122

Slide 122 text

122 Docker Composeは、複数のコンテナか ら構成するサービスを従来よりも簡単に 構築できるツールです。 従来はコンテナを作成するには、いちい ち「docker run」しなければならなかっ たのが、コマンド1発で複数のコンテナ を利用したサービスを構築できます。

Slide 123

Slide 123 text

123 Docker Composeを利用して Zabbix 3.0の環境を構築する

Slide 124

Slide 124 text

124 上記のコマンドを入力して、Docker Composeのバイナリをセットする curl -L https://github.com/docker/compose/releases/down load/1.6.2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose chmod +x /usr/local/bin/docker-compose

Slide 125

Slide 125 text

125 「docker-compose version」を入力すると、Docker composeのバージョ ンが表示される、正しくインストールされれば、このコマンドでバージョン 情報が表示される。 docker-compose version

Slide 126

Slide 126 text

126 本来であれば、作業用のディレクトリの中に「docker-compose.yaml」を 用意する必要があるのですが、今回は事前に私の方で作成したので、そちら をクローンしてください。クローンが終わったら「zabbix3」に移動します。 git clone https://github.com/wslash/zabbix3.git cd zabbix3

Slide 127

Slide 127 text

127 先ほど作成したディレクトリ「zabbix3」の中で「docker-compose pull」 を入力。Zabbixに必要なイメージをダウンロードします。 docker-compose pull

Slide 128

Slide 128 text

128 エラーが出ていなければ「docker images」を入力して「zabbix-3.0」と 「zabbix-db-mariadb」のイメージが取得できているか確認をする。 docker images

Slide 129

Slide 129 text

129 エラーが出ていなければ「docker images」を入力して「zabbix-3.0」と 「zabbix-db-mariadb」のイメージが取得できているか確認をする。

Slide 130

Slide 130 text

130 イメージを取得できていれば「docker-compose up -d」を入力してZabbix 起動に必要な複数のコンテナを立ち上げます。 docker-compose up -d

Slide 131

Slide 131 text

131 「docker-compose up -d」でコンテナを立ち上げた後「docker ps」で、 正常に動作しているか確認する。 docker ps

Slide 132

Slide 132 text

132 正常に動作していれば、ブラウザにサーバのIPアドレスを入力すれば、Zabbix のロ グイン画面が表示されます。ID: Admin 、 Password: zabbix でログインした後、パス ワードを変更してください。

Slide 133

Slide 133 text

これで今日のハンズオンは終わりです お疲れ様でした。 133