More Related Content Similar to このべん第二回 ~「できない子ほどかわいくしたい!ConoHa補完計画」勉強会 (20) このべん第二回 ~「できない子ほどかわいくしたい!ConoHa補完計画」勉強会6. 今回のトピックス
• 「VMイメージのコピー」
– 「Cl
「Clonezilla」で解決する
ill 」 解決する
• 「テンプレートの提供」「自動展開」
– 構築
構築ツール「Ansible」で解決する
「
解決す
• 「ロードバランサー」
– ローカルネットワークによる複数台構成
+nginxで解決する
– 予告していたLVS+keepalivedは想定より紙幅を取ってしまうため
予告していたLVS+keepalivedは想定より紙幅を取ってしまうため、
追ってサイトでご紹介します(ごめんなさい)
6
26. Clonezillaを使うポイント
• 使える!とき
– VPSをア プグレ ドした とき
VPSをアップグレードしたいとき
• メモリ1GB→メモリ2GBに移⾏させるとき
– ひながたとして保管しておき、
がた
保管
おき
⼤量のVPSを展開するとき
• うまい使い方
– イメージをConoHaのVPSにいつも保管しておく
• ひながたとして使いやすい
• コピー/リカバリが速い
• 他⽤途
他⽤途のVPSと兼⽤できる
と兼⽤ きる
26
32. Ansible導入 1
•
管理する側
– ansibleをインスト ルする
ansibleをインストールする
$ cd /tmp
$ wget http://ftp- srv2 .kddilabs .jp /Linux /distributions/ fedora/
ge
p // p s
dd abs jp / u /d s bu o s/ edo a/
epel/6/x86_64/epel-release-6-8.noarch.rpm
$ rpm -ivh epel-release-6-8.noarch.rpm
$ yum -y i t ll ansible
install
ibl
32
33. Ansible導入 2
•
管理する側・される側共通
– パスワ ドなしでsudo可能な ansible ユ ザ を作成
パスワードなしでsudo可能な
ユーザーを作成
$ useradd -G wheel ansible
$ passwd ansible (適当なパスワード)
p
$ visudo (以下の⾏を追加)
%wheel ALL=(ALL)
NOPASSWD: ALL
33
34. Ansible導入 3
•
管理する側
– sshの鍵ペアを作成
$ su ansible
$ ssh-keygen
Generating public/private rsa key pair
Enter file in which to save the key (/home/ansible/.ssh/id_rsa): (Enter)
Created directory '/home/ansible/.ssh'.
y
Enter passphrase (empty for no passphrase): (Enter)
Enter same passphrase again: (Enter)
34
36. Ansibleの Playbookを作成してみる
管理する側で ~/webservers.yml として作成
- hosts: webservers
Webserversと命名したホストを対象に設定
sudo: yes
tasks:
Apacheをインストール
h をイ
ト
- name: install apache
action: yum pkg=httpd state=installed
Apacheをサービス登録して起動
- name: apache staeted
action: service name=httpd state=started enabled=yes
- name: iptables 80-opened
HTTPのポートを開放、iptablesを再起動
command: iptables -I INPUT -p tcp --dport http -j ACCEPT
- name: iptables rule-saved
command: service iptables save
- name: iptables restarted
service: name=iptables state=restarted
PHPをインストール
- name: install php
action: yum pkg=php state=installed
y
g
36
38. 実際の実⾏のようす
PLAY [webservers] *************************************************************
GATHERING FACTS ***************************************************************
ok: [157.7.X.X]
TASK: [install apache] ********************************************************
ok: [157.7.X.X]
TASK: [apache staeted] ********************************************************
changed: [157.7.X.X]
TASK: [iptables 80-opened] ****************************************************
TASK [i t bl 80
d]
changed: [157.7.X.X]
TASK: [iptables rule-saved] ***************************************************
changed: [157 7 X X]
[157.7.X.X]
TASK: [iptables restarted] ****************************************************
changed: [157.7.X.X]
TASK: [install php] ***********************************************************
ok: [157.7.X.X]
PLAY RECAP ********************************************************************
157.7.X.X
157 7 X X
: ok=7 changed=4 unreachable=0 f il d 0
k 7
h
d 4
h bl 0 failed=0
$
38
46. ロ カルネットワ クの構築
ローカルネットワークの構築 0
•
•
•
先にWebサーバー1・Webサーバー2で必要なApacheなどの導入は
すませておくこと
Webサーバー1・Webサーバー2のWebドキュメントルートに
以下のように違うコンテンツを置いておくと動作確認しやすい
– Webサーバー1
$ echo 'httpd-1' > /var/www/html/index.html
– Webサーバー2
Webサ バ 2
$ echo 'httpd-2' > /var/www/html/index.html
3台ともiptablesでHTTPの通過を許可しておくこと
$ iptables -I INPUT -p tcp --dport http -j ACCEPT
$ service iptables save
$ service iptables restart
46
47. ロ カルネットワ クの構築
ローカルネットワークの構築 1
•
•
コントロールパネル「サービス」→「ローカルネットワーク」から
「ロ カルネットワ ク追加」をクリック
「ローカルネットワーク追加」をクリック
「10.0.0.0/24」セグメントのローカルネットワークを追加
– セグメントは好みに応じて選んでかまいません
47
48. ロ カルネットワ クの構築
ローカルネットワークの構築 2
•
•
•
•
•
3台のVPSをすべてシャットダウン
各VPSのメニューで「ネットワーク」を選択
各VPSのメニュ で「ネットワ ク」を選択
「接続ネットワーク」=「ローカル」の⾏の「設定」をクリック
先ほど追加したローカルネットワークセグメントを設定
3台すべてでローカルネットワークの設定が終わったら、VPSを起動
48
49. ロ カルネットワ クの構築
ローカルネットワークの構築 3
•
nginxサーバーのローカルネットワーク設定
– 「ifconfig -a | grep eth」して新たに追加されたeth1の
a
MACアドレスを確認
$ ifconfig -a | grep eth
eth0
Link encap:Ethernet HWaddr FA:16:3E:XX:XX:XX
eth1
Link encap:Ethernet HWaddr FA:16:3E:XX:XX:XX
– /etc/sysconfig/network-scripts/ifcfg-eth1 を以下のように作成
DEVICE="eth1“
DEVICE " th1“
BOOTPROTO="static“
HWADDR="FA:16:3E:XX:XX:XX“
NM_CONTROLLED="no“
NM CONTROLLED " “
ONBOOT="yes“
TYPE="Ethernet“
IPADDR= 10.0.0.11
IPADDR="10 0 0 11“
NETMASK="255.255.255.0"
– ネットワーク再起動
$ service network restart
i
t
k
t t
49
50. ロ カルネットワ クの構築
ローカルネットワークの構築 4
•
Webサーバー1のローカルネットワークの設定
– /etc/sysconfig/network-scripts/ifcfg-eth0 の ONBOOTを変更
/etc/sysconfig/network scripts/ifcfg eth0
ONBOOT="no“
– eth1のMACアドレスを前頁と同様に調べて
/etc/sysconfig/network-scripts/ifcfg-eth1 を以下の内容で作成
DEVICE="eth1“
BOOTPROTO="static“
HWADDR= fa:16:3e:XX:XX:XX
HWADDR="fa:16:3e:XX:XX:XX“
NM_CONTROLLED="no“
ONBOOT="yes“
TYPE Ethernet
TYPE="Ethernet“
IPADDR="10.0.0.12“
NETMASK="255.255.255.0“
GATEWAY="10.0.0.11“
DEFROUTE="yes"
– 再起動。
再起動後は外部インタ ネットと相互疎通できなくなるので注意
再起動後は外部インターネットと相互疎通できなくなるので注意
50
51. ロ カルネットワ クの構築
ローカルネットワークの構築 5
•
Webサーバー2のローカルネットワークの設定
– /etc/sysconfig/network-scripts/ifcfg-eth0 の ONBOOTを変更
/etc/sysconfig/network scripts/ifcfg eth0
ONBOOT="no“
– eth1のMACアドレスを前頁と同様に調べて
/etc/sysconfig/network-scripts/ifcfg-eth1 を以下の内容で作成
DEVICE="eth1“
BOOTPROTO="static“
HWADDR= fa:16:3e:XX:XX:XX
HWADDR="fa:16:3e:XX:XX:XX“
NM_CONTROLLED="no“
ONBOOT="yes“
TYPE Ethernet
TYPE="Ethernet“
IPADDR="10.0.0.13“
NETMASK="255.255.255.0“
GATEWAY="10.0.0.11“
DEFROUTE="yes"
– 再起動。
再起動後は外部インタ ネットと相互疎通できなくなるので注意
再起動後は外部インターネットと相互疎通できなくなるので注意
51
52. nginxの設定 1
•
既存のhttpdを殺す
•
$ chkconfig httpd off
$ service httpd stop
y
yumでnginxをインストール
g
•
$ rpm -ivh http://nginx.org/packages/centos/6/noarch/RPMS/nginxrelease-centos-6-0.el6.ngx.noarch.rpm
$ yum i t ll nginx
install i
設定ファイルの一部削除
•
$ rm /etc/nginx/conf d/default conf
/etc/nginx/conf.d/default.conf
nginxの起動
$ chkconfig nginx on
$ service nginx start
52
53. nginxの設定 2
•
•
•
/etc/nginx/nginx.conf のhttpプロトコル内を修正
p
http {
:
upstream web {
server 10.0.0.12:80 weight=5 max_fails=5 fail_timeout=10m;
g
;
server 10.0.0.13:80 weight=5 max_fails=5 fail_timeout=10m;
}
se e
server {
listen
80;
server_name _;
location / {
proxy_pass http://web;
}
}
}
service nginx restart
nginxサ バ のグロ バルIPアドレスにブラウザでアクセスすると、Web
nginxサーバーのグローバルIPアドレスにブラウザでアクセスすると、Web
サーバー1・Webサーバー2の内容が適宜切り替わって表⽰されるのがわかる
53