2016年9月3日に開催の「KITハッカソン勉強会(KIT, さくらクラウド, PFU 共催)」のハンズオン資料です。
(C)Copyright 1996-2016 SAKURA Internet Inc.2016/09/03さくらインターネット横田真俊(@Wslash)
View Slide
今日の補助資料はhttps://github.com/wslash/zabbix3もしくはhttps://goo.gl/7yUlJnで確認できます。2
(1)「さくらのクラウド」を利用して、自分でサーバを構築するのに慣れてもらいます。(2)サーバでローカルネットを組んでいただきます。(3)Dockerを利用してみます3
(5)Dockerを利用してみよう(4)ローカルネットワークを構築してみよう(3)サーバを拡張してみよう(2)サーバを作成してみよう(1)コントロールパネルにログインしてみよう4
(C)Copyright 1996-2016 SAKURA Internet Inc.
6さくらのクラウドでは、会員IDとは独立したさくらのクラウド専用の「ユーザ」を作成し、この専用「ユーザ」を使用してログインする形式となります。(今回のハンズオンは「ユーザ」を利用します。)
7コントロールパネルへのログイン認証の単位となる「ユーザ」とリソースの作業空間となる「アカウント」の作成が必要となります
8ユーザには、そのユーザが操作可能となるアカウントを紐付ける設定を行うことが可能です。この操作は「会員ID」でのログインのみ可能です
9「コントロールパネル」にログインするには、Webサイトの上部にある「コントロールパネルログイン」をクリックしてください
10「コントロールパネル」にログインしたら「さくらのクラウドユーザ」としてログインの箇所にある「ユーザコード」「会員ID」「パスワード」を入力してください
11無事にログインできたら、このような画面が表示されますので「さくらのクラウド(IaaS)」をクリックしてください
12さくらのクラウド(IaaS) をクリックするとこのような画面が表示されます
13(1)ゾーン切替ボタン(3)メインメニュー(2)リフレッシュボタン(5)設定ボタン (6)アカウント切り替え(7)フィードバックボタン(4)検索窓
14設定対象となるゾーンの切替をおこないます。ゾーンとは、それぞれ独立したシステム群を指し、各ゾーンで障害が発生した場合でも、他のゾーンには影響はありません
15コントロールパネルの画面更新を行うボタンです。画面更新を行う場合は1度、こちらのボタンを押してください
16「さくらのクラウド」の各機能の画面に移動するリンクです。サーバやストレージなどのリソースを作成、管理する画面に移動します。
17検索窓から自分のサーバリソースを検索できます。
18現在利用している「アカウント」を切り替えるにはアカウント名の右上にあるボタンをクリックするとアカウントの切り替えやログアウトができます。
19コントロールパネル内の不具合や機能要望を伝えることができます
21・まずは、CPU 1ギガ、メモリ 1GB、ディスク SSD 20GB、NIC 1のものでOSはCent OS 6.7の物を作成してみましょう
22・メインメニューより「サーバ」をクリック・その後「追加」をクリックすると「サーバ作成画面」に移動します
23ディスクイメージを選択します、利用したい「OS」を選択してください。今回は「CentOS 6.8」を利用します。
24次にサーバプランを選択します。サーバプランは「1GB/1仮想コア」を選択します。
25ボタンにないプランの場合は「全てのアイテムから選択」を選択するとアイテム一覧が表示され、そこから選択できます
26次に「ディスクプラン」を選択します。今回は「20GB SSDプラン」を選択します。上記のプランにない物を利用する場合は、サーバと同じように「全てのアイテムから選択」を選択してください。
27接続のネットワークに「インターネット」を選択し「管理ユーザのパスワード」でrootのパスワードを入力します。
28ホスト名とサーバ作成数を入力いたします。ホスト名はアルファベットで任意の文字列を、作成数は「1」と入力してください。
29全ての入力項目を入力し終わった後「作成」をクリックします
30「操作確認」のダイアログが表示されます。問題が無ければ「作成」をクリックします。
31「作成」をクリックすると上記のダイアログが出てきます。ステータスが全て成功になるとサーバが作成されます。
32サーバの作成が完了すると、画面の右下にダイアログが表示されます。これをクリックしてください。
33ダイアログをクリックすると、サーバ情報が表示されます。
34画面のコンソールをクリックすると「リモートコンソール」が表示されます。
35「リモートコンソール」を操作するには、リモートスクリーン全体をクリックするとコマンドを入力できます。
36「クリックしてサーバを表示」をクリックすると、作成したサーバの情報が表示されます。(表示されない場合は「情報」をクリックしてください)
37「電源操作」タブをクリックすると、サーバの起動やシャットダウンが選択できます。サーバを起動するには「起動」を選択します。
38・サーバの起動すると上記の画面がポップアップされます。「成功」が表示されました「閉じる」をクリックしてください
40さきほど作ったサーバのCPUとメモリを倍増し、さらにNICを追加してみましょう
41サーバのリソースを追加するためには、サーバを停止させる必要があります。右上にある「電源操作」から「シャットダウン」を選択してください
42・「NIC」をクリックして、右下に表示される「追加」をクリックしてください。そうすると、NICが追加されます
43CPUとメモリを変更するには、変更したいサーバをダブルクリックしてから「プラン変更」をクリックしてください
44サーバ作成時と同様にCPUとメモリを変更できます。CPUを2コア、メモリを2GBにして「プラン変更」をクリックしてください
45「プラン変更」が完了すると、この画面が表示されます
47今回はこのようなローカルネットワークを構築してみますそのためスイッチとローカルに設置するサーバを作ります
48「スイッチ」や「ルータ+スイッチ」を追加するには「スイッチ」をクリックします、その後「追加」をクリックすると「スイッチ」を追加できます
49「名前」や「説明」を追加して「ルータ」の項目を「いいえ」にするその後「作成」をクリックしてください
50サーバ作成時に「NIC」の項目を「スイッチに接続」にして先ほどのスイッチを選択してください、ディスク修正についてはIPアドレスを「192.168.0.2」ゲートウェイを「192.168.0.1」ネットマスク「24」にしてください
51・設定したい項目(ここでは「未接続」)の一番右の「▼」をクリックして「接続を編集」をクリックしてください
52スイッチの編集画面が表示されます。「スイッチに接続」を選択した後先ほど作成した「スイッチに接続」を選択し更新をクリックしてください。接続が終わったら、2台ともサーバを起動しましょう
53「さくらのクラウド」では、サーバやスイッチがどのように接続されているかがわかる「マップ」機能があります。メインメニューの「マップ」をクリックして、先ほど作ったネットワークをマップでみてみましょう
54マップ画面では、ネットワークやサーバなどの要素を自由に動かすことが可能です
55マップ画面でグローバル側のサーバをクリックした後「コンソール」をクリックします
56コンソール画面が表示されます。サーバを作成した時に設定したrootパスワードを使用しログインができることを確認してください
• 次のコマンドを入力してくださいこのコマンドを入力して「eth01」が登録されているか確認してください次にIPアドレスを設定します57ifconfig –aifconfig eth1 192.168.0.1/24
もし「ifconfig」を打っても、正常にIPアドレスが表示されない場合は、Cent OS7がインストールされている可能性があります。その場合は以下のコマンドを試してみてください。58
• 次のコマンドを入力してくださいこのコマンドを入力して「eth1」が登録されているか確認してください次にIPアドレスを設定します59ip aip addr add 192.168.0.1/24 dev eth1
これで2台のサーバにローカルネットワークが設定された状態になりました確認としてローカルネットワーク側にpingを打ってみましょう60ping 192.168.0.2
62今までのサーバとは別に「Docker」用のサーバを作成してみましょう。今回はインストールするOSは「Cent OS 6系」ではなく「Cent OS 7系」を利用いたします。
63「curl -sSL https://get.docker.com/ | sh」とコマンドを入れるとDockerのインストールがはじまります。curl -sSL https://get.docker.com/ | sh
64「systemctl start docker」とコマンドを入れるとDockerが動きますsystemctl start docker
65「docker version」と入力してDockerのバージョンが表示されれば、Dockerが正常にインストールされています。docker version
66コンテナを起動する「docker run」
■docker run コマンド→ 指定したイメージのコンテナを起動する■構文→ docker run イメージ [オプション][コマンド][引数]■オプション→ -d バックグランドで実行→ -i コンテナの標準入力を開く→ -t ttyを確保する→ -p ポートフォワード67
68ちゃんとDockerが動くか「hello world」を動かしてみたいと思います。上記のコマンドを入力してください。docker run hello-world
69「hello world」の入力が終わると、上記のような画面が表示されます。
70これだけではつまらないのでアプリを入れてみましょう
71「Ghost」は最近、人気が出ているNode.js製の軽量ブログエンジンです。今回はDockerを利用して、コマンド1発でインストールします。
• Node.jsとnpm• ApacheとかのWebサーバ• その他、色々72「Ghost」をインストールして利用するには上記のような物を色々とインストールする必要があり面倒です。
73Ghostを80番ポートで利用できるようにします。元々Ghostは2368番ポートで動いているので80番ポートとマッピングさせます。docker run -p 80:2368 -d ghost
74インストールが終わったら「(IPアドレス)」をブラウザで入力してください。上記のような「画面」が表示されます。「(IPアドレス)/admin」でGhostのセットができます。
75起動を確認したら、このコンテナを止めてみましょう。コンテナの止め方は「docker stop (コンテナのID)」で止りますので「docker ps」でコンテナIDを調べます。docker ps
76「docker ps」を入力して「CONTANER ID」を確認する。
77「docker stop (コンテナのID)」を入力すると、ghostのコンテナが止ります。(先ほどの例だと07a4e04f6418となります。)docker stop (CONTANER ID)
78Dockerを使ってWordPressを作る
79上記のコマンドを入力すると、色々とダウンロードがはじまる。docker run wordpress
80エラーが出てWordPressが起動できない、どうやらMySQLが必要な様子。というわけで、MySQLのコンテナを持ってくる。
81「docker pull [イメージ名]」でコンテナのダウンロードがはじまります。ちなみに「docker run [イメージ名]」をした時にローカルにコンテナイメージがないと自動的にダウンロードされますdocker pull mysql
82わかりやすいように –eを利用することでMySQLのパスワードの設定が可能となります。パスワードには、任意のパスワードを入れてくださいdocker run --name mysql -e MYSQL_ROOT_PASSWORD=パスワード -d mysql
83上記のコマンドを入力するとWordPressが立ち上がります。「-- link」は、--link <連携したいコンテナ名>:<エイリアス名>オプションで新しいコンテナを起動すると,そのコンテナ内で連携したいコンテナのポート番号やIPを環境変数として利用できるという機能ですdocker run --name wordpress --link mysql:mysql -p 80:80 wordpress
84インストールに成功するとこんな画面が出てきます。
85
86「-d」を指定していないので「ctrl + c」を入力すると、このコンテナ自体も停止してしまいます。それでは、次はバッグランドでWordPressを起動してみましょう。ただし、同じ名前のコンテナ(-- nemae以下)は作れないので、名前を変えてみましょう。
87上記のコマンドを入力するとWordPressが起動します。起動するのを確認したら、docker killで落としてみましょう。docker run --name wordpress2 -d --link mysql:mysql -p 80:80wordpress
88Docker Compose
89Docker Composeは、複数のコンテナから構成するサービスを従来よりも簡単に構築できるツールです。従来はコンテナを作成するには、いちいち「docker run」しなければならなかったのが、コマンド1発で複数のコンテナを利用したサービスを構築できます。
90Docker Composeを利用してRocket.Chatの環境を構築する
91上記のコマンドを入力して、Docker Composeのバイナリをセットするcurl -Lhttps://github.com/docker/compose/releases/download/1.6.2/docker-compose-`uname -s`-`uname -m`> /usr/local/bin/docker-composechmod +x /usr/local/bin/docker-compose
92「docker-compose version」を入力すると、Docker composeのバージョンが表示される、正しくインストールされれば、このコマンドでバージョン情報が表示される。docker-compose version
93本来であれば、作業用のディレクトリの中に「docker-compose.yaml」を用意する必要があるのですが、今回は事前に私の方で作成したので、そちらをクローンしてください。クローンが終わったら「rocketchat」に移動します。git clone https://github.com/zembutsu/sakura-cloud-hands-on.gitcd sakura-cloud-hands-on/rocketchat
94先ほど作成したディレクトリ「rocketchat」の中で「docker-composepull」を入力。Rocket.Chatに必要なイメージをダウンロードします。docker-compose pull
95エラーが出ていなければ「docker images」を入力して「mongo」と「rocketchat/rocket.chat」と「rocketchat/hubot-rocketchat」のイメージを取得できているか確認をする。docker images
96エラーが出ていなければ「docker images」を入力して「mongo」と「rocketchat/rocket.chat」と「rocketchat/hubot-rocketchat」のイメージを取得できているか確認をする。# docker imagesREPOSITORY TAG IMAGE ID CREATED SIZEmongo latest 7f09d45df511 5 days ago 336.1 MBrocketchat/rocket.chat latest 30826dfbbfa6 2 weeks ago 332.4 MBrocketchat/hubot-rocketchat latest a727f5c88c43 5 weeks ago 800.5 MB
97イメージを取得できていれば「docker-compose up -d」を入力してRocket.chat起動に必要な複数のコンテナを立ち上げます。docker-compose up -d
98「docker-compose up -d」でコンテナを立ち上げた後「docker ps」で、正常に動作しているか確認する。docker ps
99正常に動作していれば、ブラウザに http://サーバのIPアドレス:3000/ を入力すれば、Rocket.Chat ログイン画面が表示されます。「新しいアカウントを登録」をクリック後、名前、メールアドレス、パスワードを入力します。
これで今日のハンズオンは終わりですお疲れ様でした。さくらのクラウド 2万円クーポン」を配布いたします。今日の復習にご利用ください100
101ご清聴ありがとうございましたhttp://cloud.sakura.ad.jp
102
103Docker Composeを利用してZabbix 3.0の環境を構築する
104上記のコマンドを入力して、Docker Composeのバイナリをセットするcurl -Lhttps://github.com/docker/compose/releases/download/1.6.2/docker-compose-`uname -s`-`uname -m`> /usr/local/bin/docker-composechmod +x /usr/local/bin/docker-compose
105「docker-compose version」を入力すると、Docker composeのバージョンが表示される、正しくインストールされれば、このコマンドでバージョン情報が表示される。docker-compose version
106本来であれば、作業用のディレクトリの中に「docker-compose.yaml」を用意する必要があるのですが、今回は事前に私の方で作成したので、そちらをクローンしてください。クローンが終わったら「zabbix3」に移動します。git clone https://github.com/wslash/zabbix3.gitcd zabbix3
107先ほど作成したディレクトリ「zabbix3」の中で「docker-compose pull」を入力。Zabbixに必要なイメージをダウンロードします。docker-compose pull
108エラーが出ていなければ「docker images」を入力して「zabbix-3.0」と「zabbix-db-mariadb」のイメージが取得できているか確認をする。docker images
109エラーが出ていなければ「docker images」を入力して「zabbix-3.0」と「zabbix-db-mariadb」のイメージが取得できているか確認をする。
110イメージを取得できていれば「docker-compose up -d」を入力してZabbix起動に必要な複数のコンテナを立ち上げます。docker-compose up -d
111「docker-compose up -d」でコンテナを立ち上げた後「docker ps」で、正常に動作しているか確認する。docker ps
112正常に動作していれば、ブラウザにサーバのIPアドレスを入力すれば、Zabbix のログイン画面が表示されます。ID: Admin 、 Password: zabbix でログインした後、パスワードを変更してください。