SlideShare a Scribd company logo
Fabric による CloudStack の自動インストール
〜簡単に検証構築を繰り返し構築する方法〜
第 15 回 CloudStack ユーザ会
in 北海道
2013 年 9 月 13 日
中島 博行
自己紹介
●
CloudStack 歴:約 1 年
●
使えるプログラミング言語:パスカル
※ かれこれ 10 年以上も昔にやった大学の授業
でならった程度で、それ以外の言語はちゃん
と勉強したことがありません。
⇨ つまり、この発表は、それくらいの人でも簡単につ
いてこれる内容です。でも、知っておくとそこそこ
便利です。よかったら覚えて帰ってください。
目次
●
検証環境構築の問題点
●
自動デプロイツール Fabric の紹介
●
Fabric の使い方
●
Fabric による CloudStack の自動インストール
(おまけ) Fabric のインストール
環境構築は大変だ!
●
検証を繰り返し行うためには、検証環境を何
度も構築することになる。
●
この繰り返し構築の手間が馬鹿にならない。
●
検証環境構築を手軽に自動化できないか??
●
そこで自動化ツール Fabric を使ってみる!
環境構築は大変だ!
●
検証を繰り返し行うためには、検証環境を何
度も構築することになる。
●
この繰り返し構築の手間が馬鹿にならない。
●
検証環境構築を手軽に自動化できないか??
●
そこで自動化ツール Fabric を使ってみる!
Fabric とは
●
シェルスクリプトより簡単に複雑なことができる
– 難しいことを考えなくも簡単に SSH できます
– 必要なファイルも簡単に put/get できます
●
Chef や Puppet よりも覚えることが少なく、リモート
のサーバへのインストールも不要
– 最低限、 run と put の 2 つのコマンドを知って
いれば大丈夫です。
●
スクリプトファイルは、 python で書かれている
使い方
●
クライアント側に Fabric をインストールします
●
リモート側のサーバは、 SSH ができるように
なっている。
●
これだけです。
●
思いのほか簡単ですよ。
実演
●
リモート環境のサーバに
① ログイン
② ホスト名を表示( hostname --fqdn )
③CentOS のアップデート( yum -y update )
④apache のインストール( yum -y install httpd )
してみます。
VM
【コマンド】 fab httpd http_install -f apache_install.py
httpd.local
ホストの指定 タスクの指定 利用するスクリプトファイルの指定
CloudStack に適用する
●
CloudStack の環境構築はめんどくさい
●
なのに新しいバージョンが頻繁に出るし、い
ろいろあって作り直したくなる
●
CloudStack のインストールに Fabric を活用して
みます。
CloudStack のちょっとおさらい
CloudStack ってざっくり言うと、これらの要素が必要です。
①Management ②Hypervisor ④PS/SS③Database
今回は、 VMwareFusion を用いて事前に VM を 2 台用意し、
1 台目に①、③、④を 2 台目に②をインストールします。
VM1
CSM
VM2
KVM①Mng
③DB
④PS/SS
②Hypervisor
(KVM)
実際の CloudStack のインストール
<CSM>
vi /etc/yum.repos.d/cloudstack.repo
--
[CloudStack]
name=cloudstack
baseurl=http://cloudstack.apt-get.eu/rhel/4.1/
enabled=1
gpgcheck=0
--
yum -y install ntp
vi /etc/ntp.conf
--
#server 0.centos.pool.ntp.org
#server 1.centos.pool.ntp.org
#server 2.centos.pool.ntp.org
server -4 ntp.xxx.xxx
--
service ntpd start
ntpq -p
chkconfi g ntpd on
yum -y install cloudstack-management
(DB server)
yum -y install mysql-server
vi /etc/my.cnf
--
innodb_rollback_on_timeout=1
innodb_lock_wait_timeout=600
max_connections=350
log-bin=mysql-bin
binlog-format = 'ROW'
--
service mysqld start
chkconfi g mysqld on
mysql_secure_installation
Enter current password for root (enter for none):enter key
Set root password? [Y/n] Y
New password:
Re-enter new password:
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y
rpm -qa | grep selinux
vi /etc/selinux/confi g
--
SELINUX=permissive
--
setenforce permissive
cloudstack-setup-databases cloud:password@localhost --deploy-as=root:password
cloudstack-setup-management
<KVM>
vi /etc/yum.repos.d/cloudstack.repo
--
[CloudStack]
name=cloudstack
baseurl=http://cloudstack.apt-get.eu/rhel/4.1/
enabled=1
gpgcheck=0
--
yum -y install ntp
vi /etc/ntp.conf
--
#server 0.centos.pool.ntp.org
#server 1.centos.pool.ntp.org
#server 2.centos.pool.ntp.org
server -4 ntp.nttcloud.net
--
service ntpd start
ntpq -p
chkconfi g ntpd on
yum -y install cloudstack-agent
vi /etc/libvirt/libvirtd.conf
--
listen_tls = 0
listen_tcp = 1
tcp_port = "16509"
auth_tcp = "none"
mdns_adv = 0
--
vi /etc/sysconfi g/libvirtd
--
LIBVIRTD_ARGS="--listen"
--
service libvirtd restart
rpm -qa | grep selinux
vi /etc/selinux/confi g
--
SELINUX=permissive
--
setenforce permissive
iptables -I INPUT -p tcp -m tcp --dport 22 -j ACCEPT
iptables -I INPUT -p tcp -m tcp --dport 1798 -j ACCEPT
iptables -I INPUT -p tcp -m tcp --dport 16509 -j ACCEPT
iptables -I INPUT -p tcp -m tcp --dport 5900:6100 -j ACCEPT
iptables -I INPUT -p tcp -m tcp --dport 49152:49216 -j ACCEPT
iptables-save > /etc/sysconfi g/iptables
service rpcbind start
service nfs start
chkconfi g nfs on
chkconfi g rpcbind on
reboot
mkdir /primarymount
mount -t nfs csm:/export/primary /primarymount
umount /primarymount
mkdir /secondarymount
mount -t nfs csm:/export/secondary /secondarymount
umount /secondarymount
(NFS server)
yum -y install nfs-utils
mkdir -p /export/primary
mkdir -p /export/secondary
vi /etc/exports
--
/export *(rw,async,no_root_squash)
--
exportfs -a
vi /etc/sysconfi g/nfs
--
RQUOTAD_PORT=875
LOCKD_TCPPORT=32803
LOCKD_UDPPORT=32769
MOUNTD_PORT=892
STATD_PORT=662
STATD_OUTGOING_PORT=2020
--
vi /etc/sysconfi g/iptables
--
:INPUT ACCEPT [0:0]
-A INPUT -s xx.xx.xx.xx/24 -m state --state NEW -p udp --dport 111 -j ACCEPT
-A INPUT -s xx.xx.xx.xx/24 -m state --state NEW -p tcp --dport 111 -j ACCEPT
-A INPUT -s xx.xx.xx.xx/24 -m state --state NEW -p tcp --dport 2049 -j ACCEPT
-A INPUT -s xx.xx.xx.xx/24 -m state --state NEW -p tcp --dport 32803 -j ACCEPT
-A INPUT -s xx.xx.xx.xx/24 -m state --state NEW -p udp --dport 32769 -j ACCEPT
-A INPUT -s xx.xx.xx.xx/24 -m state --state NEW -p tcp --dport 892 -j ACCEPT
-A INPUT -s xx.xx.xx.xx/24 -m state --state NEW -p udp --dport 892 -j ACCEPT
-A INPUT -s xx.xx.xx.xx/24 -m state --state NEW -p tcp --dport 875 -j ACCEPT
-A INPUT -s xx.xx.xx.xx/24 -m state --state NEW -p udp --dport 875 -j ACCEPT
-A INPUT -s xx.xx.xx.xx/24 -m state --state NEW -p tcp --dport 662 -j ACCEPT
-A INPUT -s xx.xx.xx.xx/24 -m state --state NEW -p udp --dport 662 -j ACCEPT
--
service iptables restart
service iptables save
vi /etc/idmapd.conf
--
Domain = local
--
reboot
service rpcbind start
service nfs start
chkconfi g nfs on
chkconfi g rpcbind on
reboot
/
そこで Fabric 化してみます!
これを毎回手打ちは大変ですね。
CloudStack インストールの Fabric 化
fab csm csm_install kvm kvm_install -f acs411.py
だけです!!本当に簡単ですよね。
※ 上記でできるのは、 GUI ログインの手前まで。
※ ゾーンの作成等は、手動になります。
一度、 Fabric スクリプトを書いておけば、何度も構
築ができる。
また、バージョンアップ等でインストール方法が多
少変更になってもスクリプトを直すだけで簡単に対
応可能!
今後の展望
●
GUI から設定するゾーン作成後も含めた自動化
●
VM 自体のデプロイ及び起動の自動化
ご清聴ありがとうございました。
(参考)インストール方法
● For mac
1.AppStore Xcode
2.Xcode CommandLineTools
3.brew
ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go)"
4.python
brew install python
export PATH=/usr/local/share/python:$PATH
5.pip
sudo easy_install pip
sudo pip install pycrypto
6.Fabric
sudo pip install fabric
(参考)用意した VM のスペック
<CSM>
ipaddress 172.16.192.10
netmask 255.255.255.0
InstallType BasicServer
OS CentOS6.3
disk 80GB
CPU 1
Mem 512 MB
<KVM>
ipaddress 172.16.192.11
netmask 255.255.255.0
InstallType VirtualHost
OS CentOS6.3
disk 20GB
CPU 4 コア
Mem 2,560MB
VMwareFusion だと、 VM 作成時に『プロセッサとメモリ』の設
定画面の『詳細オプション』の『この仮想マシンのハイパー
バイザアプリケーションを有効にする』をオンにする必要が
あります。
(参考) CloudStack の Fabric インストールスクリプト
from fabric.api import env,put,run
def csm() :
env.user = 'root'
env.password = 'password'
env.hosts = ['172.16.192.10']
def kvm() :
env.user = 'root'
env.password = 'password'
env.hosts = ['172.16.192.20']
def csm_install() :
run('yum -y install ntp')
put('※1/ntp.conf','/etc/ntp.conf')
run('/etc/init.d/ntpd start')
run('ntpq -p')
run('chkconfig ntpd on')
put('※1/cloudstack.repo','/etc/yum.repos.d/cloudstack.repo')
run('yum -y install cloudstack-management')
run('yum -y install mysql-server')
put('※1/mysql.cnf','/etc/my.cnf')
run('/etc/init.d/mysqld start')
run('chkconfig mysqld on')
run('mysql -u root -e "SET PASSWORD=PASSWORD(%s);"'%("'password'"))
run('mysql -uroot -ppassword -e "GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION;"')
put('※1/selinuxconfig','/etc/selinux/config')
run('setenforce permissive')
run('cloudstack-setup-databases cloud:password@localhost --deploy-as=root:password')
run('yum -y install nfs-utils')
run('mkdir -p /export/primary')
run('mkdir -p /export/secondary')
put('※1/exports','/etc/exports')
run('exportfs -a')
put('※1/nfs.conf','/etc/sysconfig/nfs')
put('※1/iptables','/etc/sysconfig/iptables')
run('/etc/init.d/iptables restart')
run('/etc/init.d/iptables save')
put('※1/idmapd.conf','/etc/idmapd.conf')
run('/etc/init.d/rpcbind start')
run('/etc/init.d/nfs start')
run('chkconfig nfs on')
run('chkconfig rpcbind on')
run('cloudstack-setup-management')
run('/usr/share/cloudstack-common/scripts/storage/secondary/cloud-install-sys-tmplt -m /export/secondary -u http://download.cloud.com/templates/acton/acton-systemvm-02062012.qcow2.bz2 -h kvm -F')
run('reboot')
def kvm_install() :
run('yum -y install ntp')
put('※1/ntp.conf','/etc/ntp.conf')
run('/etc/init.d/ntpd start')
run('ntpq -p')
run('chkconfig ntpd on')
put('※1/cloudstack.repo','/etc/yum.repos.d/cloudstack.repo')
run('yum -y install cloudstack-agent')
put('※1/libvirtd.conf','/etc/libvirt/libvirtd.conf')
put('※1/syslibvirtd.conf','/etc/sysconfig/libvirtd')
run('/etc/init.d/libvirtd start')
put('※1/selinuxconfig','/etc/selinux/config')
run('setenforce permissive')
run('iptables -I INPUT -p tcp -m tcp --dport 22 -j ACCEPT')
run('iptables -I INPUT -p tcp -m tcp --dport 1798 -j ACCEPT')
run('iptables -I INPUT -p tcp -m tcp --dport 16509 -j ACCEPT')
run('iptables -I INPUT -p tcp -m tcp --dport 5900:6100 -j ACCEPT')
run('iptables -I INPUT -p tcp -m tcp --dport 49152:49216 -j ACCEPT')
run('iptables-save > /etc/sysconfig/iptables')
run('service rpcbind start')
run('service nfs start')
run('chkconfig nfs on')
run('chkconfig rpcbind on')
run('mkdir /primarymount')
run('mount -t nfs csm:/export/primary /primarymount')
run('umount /primarymount')
run('mkdir /secondarymount')
run('mount -t nfs csm:/export/secondary /secondarymount')
run('umount /secondarymount')
run('reboot')
※1 の部分は自分の端末のパスを書いてください。
また put した各ファイル( ntp.conf , cloudstack.repo , mysql.cnf , selinuxconfig , exports , nfs.conf , iptables , idmapd.conf , libvirtd.conf ,syslibvirtd.conf )
は、各自の環境に合わせて事前に作成してください。

More Related Content

PDF
Drone.io のご紹介
PDF
Vagrant intro
PPTX
Casperjsのインストール
PDF
Google Meet でもバーチャル背景を使いたい (WebRTC Meetup Online)
PDF
PHP7を実際に動かしてみた@第96回PHP勉強会 #phpstudy
PDF
Dockerの改修を一緒にやりませんか
PDF
Docker Machineを始めるには?
PPTX
3分間 開発環境クッキング 2012.07 #pyfes
Drone.io のご紹介
Vagrant intro
Casperjsのインストール
Google Meet でもバーチャル背景を使いたい (WebRTC Meetup Online)
PHP7を実際に動かしてみた@第96回PHP勉強会 #phpstudy
Dockerの改修を一緒にやりませんか
Docker Machineを始めるには?
3分間 開発環境クッキング 2012.07 #pyfes

What's hot (20)

PDF
Nseg20120825
PDF
第1回 一撃サーバー構築シェルスクリプト勉強会
PDF
WSL2+docker+JupyterとVS Codeリモート環境の構築
PDF
Wowzaを用いた配信基盤 Takusuta tech conf01
PPTX
Rancher と GitLab を使う3つの理由
PPTX
Packerで自動化
KEY
EmitJSの環境をちょこっと調べた
PDF
Rancher で Docker 利用!
PDF
「とても小さいVim」vim tiny
 
PDF
100GbE NICを使ったデータセンター・ネットワーク実証実験 -メモ-
PDF
WebOS Open Source Edition を試してみた
PPTX
Node.js x Headless Chrome for WeRTC MCU / Node.js x Chrome headless で、お手軽WebR...
PPTX
Introduction of skippbox
PPTX
勉強会0614 vagrant
PDF
kpackによるコンテナイメージのビルド
PPTX
Ansible ではじめるインフラのコード化入門
PDF
Vagrant - 最近流行ってるらしいけど何者?
PDF
Ansible roleとinventoryの書き方
PDF
Node.jsでDroneたちをめっちゃ簡単にHACKする話 JSオジサン#6
PDF
AWSとGCPを使用したインフラ環境
Nseg20120825
第1回 一撃サーバー構築シェルスクリプト勉強会
WSL2+docker+JupyterとVS Codeリモート環境の構築
Wowzaを用いた配信基盤 Takusuta tech conf01
Rancher と GitLab を使う3つの理由
Packerで自動化
EmitJSの環境をちょこっと調べた
Rancher で Docker 利用!
「とても小さいVim」vim tiny
 
100GbE NICを使ったデータセンター・ネットワーク実証実験 -メモ-
WebOS Open Source Edition を試してみた
Node.js x Headless Chrome for WeRTC MCU / Node.js x Chrome headless で、お手軽WebR...
Introduction of skippbox
勉強会0614 vagrant
kpackによるコンテナイメージのビルド
Ansible ではじめるインフラのコード化入門
Vagrant - 最近流行ってるらしいけど何者?
Ansible roleとinventoryの書き方
Node.jsでDroneたちをめっちゃ簡単にHACKする話 JSオジサン#6
AWSとGCPを使用したインフラ環境
Ad

Similar to Fabricによるcloud stackインストール自動化 (20)

KEY
Fabricでサーバー管理をDRYにしよう
PDF
Hbstudy41 auto scaling
PDF
BOSHでお手軽CFデプロイon AWS
PDF
Fabric + Amazon EC2で快適サポート生活 #PyFes
PDF
Apache CloudStack 4.0 インストール(ver0.5)
PDF
Apache cloudstack4.0インストール
PPTX
Idcfクラウドで始める構築自動化
PDF
CloudFoundry 2 on Apache CloudStack 4.2.1
PPTX
microPCFを使ってみよう
PDF
CloudFoundry 2 on Apache CloudStack 4.2.1
PDF
Slide osc2013tokyo spring
PPTX
(続) はじめてのCloud Foundry
PPTX
自動デプロイ
PDF
Havana版 RDO-QuickStart-3 (140421-Havana-RDO-QuickStart-3.pdf)
PDF
20140612_Docker上でCloudStackを動かしてみる!!
PDF
20130803 OSC@Kyoto CloudStackユーザー会
PDF
OpenStack構築手順書 Kilo版
PDF
サーバー初心者のためのWordPressサイト構築手順
PPTX
自宅スケーラブル・ファイルシステムのご紹介
PDF
Hadoop on LXC
Fabricでサーバー管理をDRYにしよう
Hbstudy41 auto scaling
BOSHでお手軽CFデプロイon AWS
Fabric + Amazon EC2で快適サポート生活 #PyFes
Apache CloudStack 4.0 インストール(ver0.5)
Apache cloudstack4.0インストール
Idcfクラウドで始める構築自動化
CloudFoundry 2 on Apache CloudStack 4.2.1
microPCFを使ってみよう
CloudFoundry 2 on Apache CloudStack 4.2.1
Slide osc2013tokyo spring
(続) はじめてのCloud Foundry
自動デプロイ
Havana版 RDO-QuickStart-3 (140421-Havana-RDO-QuickStart-3.pdf)
20140612_Docker上でCloudStackを動かしてみる!!
20130803 OSC@Kyoto CloudStackユーザー会
OpenStack構築手順書 Kilo版
サーバー初心者のためのWordPressサイト構築手順
自宅スケーラブル・ファイルシステムのご紹介
Hadoop on LXC
Ad

Fabricによるcloud stackインストール自動化

  • 1. Fabric による CloudStack の自動インストール 〜簡単に検証構築を繰り返し構築する方法〜 第 15 回 CloudStack ユーザ会 in 北海道 2013 年 9 月 13 日 中島 博行
  • 2. 自己紹介 ● CloudStack 歴:約 1 年 ● 使えるプログラミング言語:パスカル ※ かれこれ 10 年以上も昔にやった大学の授業 でならった程度で、それ以外の言語はちゃん と勉強したことがありません。 ⇨ つまり、この発表は、それくらいの人でも簡単につ いてこれる内容です。でも、知っておくとそこそこ 便利です。よかったら覚えて帰ってください。
  • 3. 目次 ● 検証環境構築の問題点 ● 自動デプロイツール Fabric の紹介 ● Fabric の使い方 ● Fabric による CloudStack の自動インストール (おまけ) Fabric のインストール
  • 6. Fabric とは ● シェルスクリプトより簡単に複雑なことができる – 難しいことを考えなくも簡単に SSH できます – 必要なファイルも簡単に put/get できます ● Chef や Puppet よりも覚えることが少なく、リモート のサーバへのインストールも不要 – 最低限、 run と put の 2 つのコマンドを知って いれば大丈夫です。 ● スクリプトファイルは、 python で書かれている
  • 7. 使い方 ● クライアント側に Fabric をインストールします ● リモート側のサーバは、 SSH ができるように なっている。 ● これだけです。 ● 思いのほか簡単ですよ。
  • 8. 実演 ● リモート環境のサーバに ① ログイン ② ホスト名を表示( hostname --fqdn ) ③CentOS のアップデート( yum -y update ) ④apache のインストール( yum -y install httpd ) してみます。 VM 【コマンド】 fab httpd http_install -f apache_install.py httpd.local ホストの指定 タスクの指定 利用するスクリプトファイルの指定
  • 10. CloudStack のちょっとおさらい CloudStack ってざっくり言うと、これらの要素が必要です。 ①Management ②Hypervisor ④PS/SS③Database 今回は、 VMwareFusion を用いて事前に VM を 2 台用意し、 1 台目に①、③、④を 2 台目に②をインストールします。 VM1 CSM VM2 KVM①Mng ③DB ④PS/SS ②Hypervisor (KVM)
  • 11. 実際の CloudStack のインストール <CSM> vi /etc/yum.repos.d/cloudstack.repo -- [CloudStack] name=cloudstack baseurl=http://cloudstack.apt-get.eu/rhel/4.1/ enabled=1 gpgcheck=0 -- yum -y install ntp vi /etc/ntp.conf -- #server 0.centos.pool.ntp.org #server 1.centos.pool.ntp.org #server 2.centos.pool.ntp.org server -4 ntp.xxx.xxx -- service ntpd start ntpq -p chkconfi g ntpd on yum -y install cloudstack-management (DB server) yum -y install mysql-server vi /etc/my.cnf -- innodb_rollback_on_timeout=1 innodb_lock_wait_timeout=600 max_connections=350 log-bin=mysql-bin binlog-format = 'ROW' -- service mysqld start chkconfi g mysqld on mysql_secure_installation Enter current password for root (enter for none):enter key Set root password? [Y/n] Y New password: Re-enter new password: Remove anonymous users? [Y/n] Y Disallow root login remotely? [Y/n] Y Remove test database and access to it? [Y/n] Y Reload privilege tables now? [Y/n] Y rpm -qa | grep selinux vi /etc/selinux/confi g -- SELINUX=permissive -- setenforce permissive cloudstack-setup-databases cloud:password@localhost --deploy-as=root:password cloudstack-setup-management <KVM> vi /etc/yum.repos.d/cloudstack.repo -- [CloudStack] name=cloudstack baseurl=http://cloudstack.apt-get.eu/rhel/4.1/ enabled=1 gpgcheck=0 -- yum -y install ntp vi /etc/ntp.conf -- #server 0.centos.pool.ntp.org #server 1.centos.pool.ntp.org #server 2.centos.pool.ntp.org server -4 ntp.nttcloud.net -- service ntpd start ntpq -p chkconfi g ntpd on yum -y install cloudstack-agent vi /etc/libvirt/libvirtd.conf -- listen_tls = 0 listen_tcp = 1 tcp_port = "16509" auth_tcp = "none" mdns_adv = 0 -- vi /etc/sysconfi g/libvirtd -- LIBVIRTD_ARGS="--listen" -- service libvirtd restart rpm -qa | grep selinux vi /etc/selinux/confi g -- SELINUX=permissive -- setenforce permissive iptables -I INPUT -p tcp -m tcp --dport 22 -j ACCEPT iptables -I INPUT -p tcp -m tcp --dport 1798 -j ACCEPT iptables -I INPUT -p tcp -m tcp --dport 16509 -j ACCEPT iptables -I INPUT -p tcp -m tcp --dport 5900:6100 -j ACCEPT iptables -I INPUT -p tcp -m tcp --dport 49152:49216 -j ACCEPT iptables-save > /etc/sysconfi g/iptables service rpcbind start service nfs start chkconfi g nfs on chkconfi g rpcbind on reboot mkdir /primarymount mount -t nfs csm:/export/primary /primarymount umount /primarymount mkdir /secondarymount mount -t nfs csm:/export/secondary /secondarymount umount /secondarymount (NFS server) yum -y install nfs-utils mkdir -p /export/primary mkdir -p /export/secondary vi /etc/exports -- /export *(rw,async,no_root_squash) -- exportfs -a vi /etc/sysconfi g/nfs -- RQUOTAD_PORT=875 LOCKD_TCPPORT=32803 LOCKD_UDPPORT=32769 MOUNTD_PORT=892 STATD_PORT=662 STATD_OUTGOING_PORT=2020 -- vi /etc/sysconfi g/iptables -- :INPUT ACCEPT [0:0] -A INPUT -s xx.xx.xx.xx/24 -m state --state NEW -p udp --dport 111 -j ACCEPT -A INPUT -s xx.xx.xx.xx/24 -m state --state NEW -p tcp --dport 111 -j ACCEPT -A INPUT -s xx.xx.xx.xx/24 -m state --state NEW -p tcp --dport 2049 -j ACCEPT -A INPUT -s xx.xx.xx.xx/24 -m state --state NEW -p tcp --dport 32803 -j ACCEPT -A INPUT -s xx.xx.xx.xx/24 -m state --state NEW -p udp --dport 32769 -j ACCEPT -A INPUT -s xx.xx.xx.xx/24 -m state --state NEW -p tcp --dport 892 -j ACCEPT -A INPUT -s xx.xx.xx.xx/24 -m state --state NEW -p udp --dport 892 -j ACCEPT -A INPUT -s xx.xx.xx.xx/24 -m state --state NEW -p tcp --dport 875 -j ACCEPT -A INPUT -s xx.xx.xx.xx/24 -m state --state NEW -p udp --dport 875 -j ACCEPT -A INPUT -s xx.xx.xx.xx/24 -m state --state NEW -p tcp --dport 662 -j ACCEPT -A INPUT -s xx.xx.xx.xx/24 -m state --state NEW -p udp --dport 662 -j ACCEPT -- service iptables restart service iptables save vi /etc/idmapd.conf -- Domain = local -- reboot service rpcbind start service nfs start chkconfi g nfs on chkconfi g rpcbind on reboot / そこで Fabric 化してみます! これを毎回手打ちは大変ですね。
  • 12. CloudStack インストールの Fabric 化 fab csm csm_install kvm kvm_install -f acs411.py だけです!!本当に簡単ですよね。 ※ 上記でできるのは、 GUI ログインの手前まで。 ※ ゾーンの作成等は、手動になります。 一度、 Fabric スクリプトを書いておけば、何度も構 築ができる。 また、バージョンアップ等でインストール方法が多 少変更になってもスクリプトを直すだけで簡単に対 応可能!
  • 15. (参考)インストール方法 ● For mac 1.AppStore Xcode 2.Xcode CommandLineTools 3.brew ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go)" 4.python brew install python export PATH=/usr/local/share/python:$PATH 5.pip sudo easy_install pip sudo pip install pycrypto 6.Fabric sudo pip install fabric
  • 16. (参考)用意した VM のスペック <CSM> ipaddress 172.16.192.10 netmask 255.255.255.0 InstallType BasicServer OS CentOS6.3 disk 80GB CPU 1 Mem 512 MB <KVM> ipaddress 172.16.192.11 netmask 255.255.255.0 InstallType VirtualHost OS CentOS6.3 disk 20GB CPU 4 コア Mem 2,560MB VMwareFusion だと、 VM 作成時に『プロセッサとメモリ』の設 定画面の『詳細オプション』の『この仮想マシンのハイパー バイザアプリケーションを有効にする』をオンにする必要が あります。
  • 17. (参考) CloudStack の Fabric インストールスクリプト from fabric.api import env,put,run def csm() : env.user = 'root' env.password = 'password' env.hosts = ['172.16.192.10'] def kvm() : env.user = 'root' env.password = 'password' env.hosts = ['172.16.192.20'] def csm_install() : run('yum -y install ntp') put('※1/ntp.conf','/etc/ntp.conf') run('/etc/init.d/ntpd start') run('ntpq -p') run('chkconfig ntpd on') put('※1/cloudstack.repo','/etc/yum.repos.d/cloudstack.repo') run('yum -y install cloudstack-management') run('yum -y install mysql-server') put('※1/mysql.cnf','/etc/my.cnf') run('/etc/init.d/mysqld start') run('chkconfig mysqld on') run('mysql -u root -e "SET PASSWORD=PASSWORD(%s);"'%("'password'")) run('mysql -uroot -ppassword -e "GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION;"') put('※1/selinuxconfig','/etc/selinux/config') run('setenforce permissive') run('cloudstack-setup-databases cloud:password@localhost --deploy-as=root:password') run('yum -y install nfs-utils') run('mkdir -p /export/primary') run('mkdir -p /export/secondary') put('※1/exports','/etc/exports') run('exportfs -a') put('※1/nfs.conf','/etc/sysconfig/nfs') put('※1/iptables','/etc/sysconfig/iptables') run('/etc/init.d/iptables restart') run('/etc/init.d/iptables save') put('※1/idmapd.conf','/etc/idmapd.conf') run('/etc/init.d/rpcbind start') run('/etc/init.d/nfs start') run('chkconfig nfs on') run('chkconfig rpcbind on') run('cloudstack-setup-management') run('/usr/share/cloudstack-common/scripts/storage/secondary/cloud-install-sys-tmplt -m /export/secondary -u http://download.cloud.com/templates/acton/acton-systemvm-02062012.qcow2.bz2 -h kvm -F') run('reboot') def kvm_install() : run('yum -y install ntp') put('※1/ntp.conf','/etc/ntp.conf') run('/etc/init.d/ntpd start') run('ntpq -p') run('chkconfig ntpd on') put('※1/cloudstack.repo','/etc/yum.repos.d/cloudstack.repo') run('yum -y install cloudstack-agent') put('※1/libvirtd.conf','/etc/libvirt/libvirtd.conf') put('※1/syslibvirtd.conf','/etc/sysconfig/libvirtd') run('/etc/init.d/libvirtd start') put('※1/selinuxconfig','/etc/selinux/config') run('setenforce permissive') run('iptables -I INPUT -p tcp -m tcp --dport 22 -j ACCEPT') run('iptables -I INPUT -p tcp -m tcp --dport 1798 -j ACCEPT') run('iptables -I INPUT -p tcp -m tcp --dport 16509 -j ACCEPT') run('iptables -I INPUT -p tcp -m tcp --dport 5900:6100 -j ACCEPT') run('iptables -I INPUT -p tcp -m tcp --dport 49152:49216 -j ACCEPT') run('iptables-save > /etc/sysconfig/iptables') run('service rpcbind start') run('service nfs start') run('chkconfig nfs on') run('chkconfig rpcbind on') run('mkdir /primarymount') run('mount -t nfs csm:/export/primary /primarymount') run('umount /primarymount') run('mkdir /secondarymount') run('mount -t nfs csm:/export/secondary /secondarymount') run('umount /secondarymount') run('reboot') ※1 の部分は自分の端末のパスを書いてください。 また put した各ファイル( ntp.conf , cloudstack.repo , mysql.cnf , selinuxconfig , exports , nfs.conf , iptables , idmapd.conf , libvirtd.conf ,syslibvirtd.conf ) は、各自の環境に合わせて事前に作成してください。