Upgrade to Pro — share decks privately, control downloads, hide ads and more …

「さくらのクラウド」を利用したハンズオン

 「さくらのクラウド」を利用したハンズオン

INNOVATORS SUMMER @OSAKA  向け ハンズオン資料

B31b322f3c5ee83743da0e8bd6891f8a?s=128

横田真俊(wslash)

July 29, 2016
Tweet

Transcript

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

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

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

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

  5. (C)Copyright 1996-2016 SAKURA Internet Inc.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  20. (C)Copyright 1996-2016 SAKURA Internet Inc.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  38. (C)Copyright 1996-2016 SAKURA Internet Inc.

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

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

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

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

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

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

  45. (C)Copyright 1996-2016 SAKURA Internet Inc.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  60. (C)Copyright 1996-2016 SAKURA Internet Inc.

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

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

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

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

    それぞれはソフトウェアなので「Webサーバ」「Appサーバ」 「DBサーバ」を1台のサーバに入れることもできる
  65. 65 というわけで、サーバのミドルウェアを知るために 今回は1つ々、インストールしていきたいと思います

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

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

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

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

    –y httpd php mysql-server php-mysql
  70. 70 service httpd start 上記のコマンドを入力すると Apacheが起動します。

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

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

  73. 73 /usr/bin/mysqladmin -u root password 'パスワード' MySQLサーバが起動したら、MySQLのユーザを作成します。 ここではrootというユーザを作成し、パスワードを設定します。’ パスワード’と書かれているところに自分で設定したパスワード を入力してください。

    「Warning: Using a password on the command line interface can be insecure.」と出ますが気にしないでください
  74. 74 mysql -u root -p 上記のコマンドを入力して、先ほど入力したパスワード を入力すると、MySQLの中に入れます

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

  76. 76 grant all privileges on wp.* to wp@localhost identified by

    'PASSWORD'; 上記コマンドで データベースにアクセスするための「wp」という ユーザとパスワードを設定します。
  77. 77 ¥q 「¥q」でMySQLを抜けます

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

  79. 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」を入力します
  80. 80 service httpd restart 編集した「php.ini」を反映させるためにApacheの再起 動を行います。

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

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

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

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

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

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

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

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

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

  90. • データベース名 create databaseコマンドで指定したデータベース名で す。「wp」としましたので、wpを指定します。 • ユーザ名 grantコマンドで指定したユーザ名です。こちらも 「wp」としましたので、wpを指定します。 •

    パスワード 同じくgrantコマンドで指定したパスワードです。同じも のを指定してください。 「データベースのホスト名」と「テーブル接頭辞」は変更 しないでください 90
  91. 91 成功すると上記の画面が出てきます 「インストール実行」を押してください。

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

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

  94. (C)Copyright 1996-2016 SAKURA Internet Inc.

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

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

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

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

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

  100. ▪docker run コマンド → 指定したイメージのコンテナを起動する ▪構文 → docker run イメージ

    [オプション][コマンド][引数] ▪オプション → -d バックグランドで実行 → -i コンテナの標準入力を開く → -t ttyを確保する → -p ポートフォワード 100
  101. 101 ちゃんとDockerが動くか「hello world」を動かしてみたいと思います。 上記のコマンドを入力してください。 docker run hello-world

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    wordpress --link mysql:mysql -p 80:80 wordpress
  117. 117 インストールに成功するとこんな画面が出てきます。

  118. 118

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

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

    mysql:mysql -p 80:80 wordpress
  121. 121 Docker Compose

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

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

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

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

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

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

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

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

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

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

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