CloudConductor つかってみよう
~ AWS 環境編 ~
目次
CloudConductor インストールガイド ____________________________________ 1
第1章
AWS 環境準備 _______________________________________________ 3
1.1 AWS のアカウント作成 ______________________________________________ 3
1.2 ドメインの取得 _____________________________________________________ 3
1.3 IAM ユーザーの作成 _________________________________________________ 4
1.4 Route53 の準備 ____________________________________________________ 15
1.5 S3 のバケットを作成する。 __________________________________________ 19
第
2 章 Zabbix 準備 ________________________________________________ 24
2.1 Zabbix サーバの構築 ________________________________________________ 24
第
3 章 CC インストール ___________________________________________ 80
3.1 CC サーバのインスタンス作成 _______________________________________ 80
3.2 CC インストール準備 _______________________________________________ 88
第1章
AWS 環境準備
1.1
AWS のアカウント作成
1. AWS のサインアップより必要情報、クレジットカード情報を登録。
1.2
ドメインの取得
1.3
IAM ユーザーの作成
1. Group の作成(Power User Access)
[1] 上部の黒いメニューバー上にある「Service」を選択する。
[3] 左側のメニューにある「Groups」を選択する。
[5] 「Group Name」に任意のグループ名を入力し、「Next Step」ボタンをクリックする。
[7] 「PowerUserAccess」にチェックを入れて、「Next Step」ボタンをクリックする。
2. User の作成(上記の Group に参加)
⇒クレデンシャルはダウンロードしておく(CSV 形式)
[1] 「Users」をクリックする。
[3] 「Enter User Names」に任意のユーザー名を入力する。
[5] 「Show User Security Credentials」リンクをクリックする。
[7] 「保存」ボタンを押してファイルをダウンロードする。
[9] 作成したグループにユーザーを追加する。追加したいユーザーをクリックする。
[11] ユーザーを追加する任意のグループにチェックを入れ、「Add to Groups」をクリックする。
1.4
Route53 の準備
1. Hosted Zone を登録
※Hosted Zone の作成のみでレコード等の作成は行わない。
[1] 上部の黒いメニューバー上にある「Service」を選択し、「Route 53」をクリックする。
[3] 「Create Hosted Zone」をクリックする。
[5] 「Domain Name」、「Comment」に入力し、「Type」は『Public Hosted Zone』を選択する。
[7] Hosted Zone の一覧に Domain が登録されている。作成した Hosted Zone の Domain Name をクリックする。
1.5
S3 のバケットを作成する。
[1] 上部の黒いメニューバー上にある「Service」を選択し、「S3」をクリックする。
[3] 任意のバケット名を入力する。
Bucket Name:小文字 3~63。リージョンに関係なくグローバルに一意。 Region:任意
[5] Create 画面になる。
[7] 「Properties」をクリックする。
[9] Endpoint を控えておく。
下図では、以下の Endpoint。
第2章
Zabbix 準備
2.1
Zabbix サーバの構築
1. Launch Instance
[2] 「Launch Instance」をクリックする。
[4] AWS Marketplace より『CentOS』を検索する。
[6] マシンタイプ(t1.micro)を選択し、「Next: Configure Instance Details」ボタンをクリックする。
[7] インスタンス情報を□内に入力し、「Next: Add Storage」をクリックする。
[8] ストレージ情報を入力し、「Next: Tag Instance」をクリックする。
[10] 「Add Rule」をクリックし、セキュリティグループを追加する。
[12] 「Review and Launch」をクリックする。
[14] 「Launch」をクリックする。
[16] 任意の「Key pair name」を入力。「Download Key Pair」をクリックする。
[18] 「Launch Instance」をクリックし、インスタンスを起動する。
2.2
Zabbix のインストール準備
※1 本資料では、Tera term を使用する。
[1] SSH クライアントを起動する。※1 IP アドレスに PublicIP を指定する。PublicIP は、以下の手順で確認する。 [2] 上部の黒いメニューバー上にある「Service」を選択し、「EC2」をクリックする。 [3] 「Instances」を選択する。[4] 前手順で作成した Zabbix 構築用サーバの PublicIP を確認する。
「Instance State」が《Stop》になっている場合は、PublicIP が表示されないので「Instance State」は 《running》にすること。
[5] SSH クライアント*1 を起動し、上記で確認した PublicIP を以下の「ホスト」に入力。サービス項目で「SSH」が選択されているこ とを確認し、「OK」をクリックする。
[6] 「続行」をクリックする。
[8] 「第 2 章 Zabbix 準備 - [17]ダウンロードした「~.pem」ファイルを保存する。」で保存したファイルを選択する。
2.3
Zabbix2.2 をインストール
1. 作成した CentOS に zabbix をインストールする。以下のコマンドを順番に入力する。
[1] rpm -ivh http://repo.zabbix.com/zabbix/2.2/rhel/6/x86_64/zabbix-release-2.2-1.el6.noarch.rpm
[2] yum -y install zabbix-server-mysql zabbix-web-mysql zabbix-web-japanese
[3] yum -y install zabbix-agent
[4] yum -y install mysql-server
[5] service mysqld start
[6] mysql -u root
[7] create database zabbix character set utf8 collate utf8_bin;
[8] grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';
[9] exit
[10] cd /usr/share/doc/zabbix-server-mysql-2.2.9/create
[11] mysql -u root zabbix < schema.sql
[12] mysql -u root zabbix < images.sql
[13] mysql -u root zabbix < data.sql
[14] vi /etc/zabbix/zabbix_server.conf
[16] 「DBName=」のコメントアウトを外し、以下のように書き換える。
DBName=zabbix
[17] 「DBUser=」のコメントアウトを外し、以下のように書き換える。
[18] 「DBPassword =」のコメントアウトを外し、以下のように書き換える。
[19] エディタを保存し、エディタモードを終了する。
[20] service zabbix-server start
[21] chkconfig zabbix-server on
[22] service httpd start
[23] chkconfig httpd on
[24] chkconfig mysqld on
[25] service iptables stop
[26] chkconfig iptables off
[27] 以下のコマンドでエディタモードにする。
vi /etc/sysconfig/selinux
[28] 「SELINUX =」のコメントアウトを外し、以下のように書き換える。
SELINUX=permissive
[30] setenforce permissive
[31] vi /etc/httpd/conf.d/zabbix.conf
[32] 以下のコメントアウトを外し、書き換える。
[33] service httpd restart
[34] ブラウザから zabbix が正しくインストールされているか確認する。ブラウザを立ち上げ、以下の URL を入力し、実行する。
http:// + [Zabbix の IP アドレス] + /zabbix 例)http://54.64.45.142/zabbix
[36] 「next」をクリックする。
[37] 以下(□)に、以下の表内の MySQL の情報を入力する。
Database Type: MySQL Database Name: zabbix Database Host: localhost User: zabbix Database Port: 0 Password: zabbix
[38] 「Test connection」をクリックする。入力内容が正しいか確認する。
※以下の画面になった場合は、もう一度設定内容を確認する。(確認箇所 ⇒ ●●)
[41] 「Next」をクリックする。
[43] ログイン画面では、登録した、「Username」と「Password」を入力し、ログインできることを確認する。 本書に沿って登録した場合以下の値を入力する。
「Username」 ⇒ Admin 、 「Password」 ⇒ zabbix
第3章
CC インストール
3.1
CC サーバのインスタンス作成
[1] keypair を作成し、インスタンスを起動する。上部の黒いメニューバー上にある「Service」を選択し、「EC2」をクリックする。
[3] Amazon Linux AMI 2014.09.2 (HVM)の「Select」を選択する。
[5] インスタンス情報を入力し、「Next: Add Storage」をクリックする。
Auto-assign Public IP:Enable
[7] タグ情報を入力する。
[9] セキュリティグループを入力、API を受け付けられるようにする。「Add Rules」をクリックし 2 行追加する。
[10] 追加した 2 行に以下の情報を入力する。入力したら、「Review and Launch」をクリックする。 1 行目:Type ⇒ HTTP
2 行目:Type ⇒ Custom TCP Rule Port Range ⇒ 8080
② ①
[11] 『Continue with Magnetic as the boot volume for this instance.』を選択し、「Next」ボタンを押す。
[13] keypair を作成する。『Create a new key pair』を選択し、任意の「Key pair name」を入力。「Download Key Pair」 をクリックする。
[15] 「Launch Instance」をクリックし、インスタンスを起動する。
3.2
CC インストール準備
[1] SSH クライアントを起動する。※1 IP アドレスに PublicIP を指定する。PublicIP は、以下の手順で確認する。 ※1 本資料では、Tera Term を使用する。 [2] 上部の黒いメニューバー上にある「Service」を選択し、「EC2」をクリックする。 [3] 「Instances」を選択する。[4] 前手順で作成した CloudCOnductor 構築用サーバの PublicIP を確認する。
「Instance State」が《Stop》になっている場合は、PublicIP が表示されないので「Instance State」は 《running》にすること。
[5] SSH クライアント*1 を起動し、上記で確認した PublicIP を以下の「ホスト」に入力。サービス項目で「SSH」が選択されているこ とを確認し、「OK」をクリックする。
[6] 「続行」をクリックする。
[8] 「第 3 章 CC インストール - 3.1CC サーバのインスタンス作成 3.1[14]ダウンロードした「~.pem」ファイルを保存する。」で保存 したファイルを選択する。
3.3
CC インストール
[1] sudo yum update
Y を入力し実行。
[2] sudo yum install git gcc gcc-c++ make patch openssl-devel libxslt-devel libxml2-devel readline-devel sqlite-devel
[3] y
[4] sudo git clone https://github.com/sstephenson/rbenv.git /usr/local/rbenv
[5] sudo git clone https://github.com/sstephenson/ruby-build.git /usr/local/rbenv/plugins/ruby-build
[6] sudo visudo
[7] 下記を追記する。
Defaults env_keep += "RBENV_ROOT"
[8] 下記、項目を編集する。
Defaults secure_path = /usr/local/rbenv/shims:/sbin:/ bin:/usr/sbin: /usr/bin:/ usr/local/rbenv/bin
[10] sudo rbenv init –
[11] sudo tee /etc/profile.d/rbenv.sh > /dev/null <<'EOF'
export RBENV_ROOT=/usr/local/rbenv export PATH=$PATH:$RBENV_ROOT/bin eval "$(rbenv init -)"
EOF
[12] source /etc/profile.d/rbenv.sh
[13] sudo rbenv install 2.1.5
[14] sudo rbenv global 2.1.5
[15] sudo rbenv rehash
[16] sudo gem install bundler
[17] sudo mkdir /opt/packer
[18] sudo wget http://dl.bintray.com/mitchellh/packer/packer_0.7.5_linux_amd64.zip
[19] sudo unzip packer_0.7.5_linux_amd64.zip -d /opt/packer
[20] git clone https://github.com/cloudconductor/cloud_conductor.git
[21] cd cloud_conductor
[22] sudo git checkout develop
[23] sudo yum erase ruby20
[24] y
[25] sudo gem install bundler
[26] sudo rbenv rehash
[27] source /etc/profile.d/rbenv.sh
[28] bundle install
[29] sudo cp config/config.rb.smp config/config.rb
[30] sudo vi config/config.rb
[31] 以下の内容に修正する。
<このサーバのグローバル IP>とは、本章「3.2 CC インストール準備-[4]前手順で作成した CloudCOnductor 構築用サ ーバの PublicIP を確認する。」に情報が記載されているので下記のコマンドに置き換えて実行してください。
# cloudconductor server settings
[32] 以下の内容に修正する。<ACCESS_KEY>と<SECRET_KEY>は、上記手順、「第 1 章 AWS 環境準備-1.3 IAM ユーザーの作成-2User の作成(上記の Group に参加)―[7]「保存」ボタンを押してファイルをダウンロードする。」で保 存したファイルに記載されているので下記のコマンドに置き換えて実行してください。 # dns settings dns.service 'route53' dns.access_key '<ACCESS_KEY>' dns.secret_key '<SECRET_KEY>' dns.ttl 60
[33] 今回の設定では変更する必要はなし。
# zabbix server settings
zabbix.enabled false # Zabbix を使う場合は true に
zabbix.url 'http://<ZabbixServerIP>/zabbix/api_jsonrpc.php' zabbix.user '<UserName>'
zabbix.password '<Password>'
[35] bundle exec rake db:migrate
[36] bundle exec unicorn -c config/unicorn.rb -D
[37] bundle exec rake register:admin
[38] 下記に任意の情報を入力する。
Email: <任意のメールアドレス> Name: <任意のユーザー名> Password: <任意のパスワード>
Password Confirmation: <上記の password>
[39] cd
[40] git clone https://github.com/cloudconductor/cloud_conductor_cli.git
[41] cd cloud_conductor_cli
[42] git checkout develop
[43] bundle install
[44] bundle exec rake install
※権限によっては作業対象のディレクトリにファイルの追加等を行う権限がない場合がありますので処理が異常終了してしまった 場合は、「sudo」を付けて実行してみてください。
[45] echo "export CC_HOST=localhost" >> ~/.bashrc
[46] echo "export CC_PORT=8080" >> ~/.bashrc
[47] 以下、項目を実行する。<先ほど登録した管理者ユーザの Email>とは、本章「[38]下記に任意の情報を入力する。」で 入力した任意のメールアドレスである。
echo "export CC_AUTH_ID=<先ほど登録した管理者ユーザの Email>" >> ~/.bashrc
[48] 以下、項目を実行する。<先ほど登録した管理者ユーザの Password >とは、本章「[38]下記に任意の情報を入力す る。」で入力した任意のパスワードである。※新規
echo "export CC_AUTH_PASSWORD=<先ほど登録した管理者ユーザの Password>" >> ~/.bashrc ※ここから先、SSH クライアントの接続先 IP が変わっていますが同様の変更をする必要はありませんのでそのまま操 作を続けてください。
[49] source ~/.bashrc
※今回は、Tomcat パターンのシステムデプロイです。
[50] cc-cli project create --name "cc-dev" --description "cc-dev"
[51] 以下、項目を実行する。<ACCESS_KEY>と<SECRET_KEY>は、上記手順、「第 1 章 AWS 環境準備-1.3 IAM ユーザーの作成-2User の作成(上記の Group に参加)―[7]「保存」ボタンを押してファイルをダウンロードする。」で保 存したファイルに情報が記載されているので下記のコマンドに置き換えて実行してください。
cc-cli cloud create --project "cc-dev" --name "AWS" --type "aws" --entry-point "ap-northeast-1" --key " <ACCESS_KEY> " --secret " <SECRET_KEY> "
[52] cc-cli blueprint create --project "cc-dev" --name "bluep" --patterns-json '[{"url": "https://github.com/cloudconductor-patterns/tomcat_pattern.git", "revision": "master"}]'
[53] cc-cli blueprint show bluep
※上記、[52]実行後、作業が完了するまでしばらく時間がかかります。「status」が CREATE_COMPLETE にな るまでお待ちください。
PENDING ⇒ 実行中、 CREATE_COMPLETE ⇒ 実行完了
[54] cd
第4章
CloudConductor を使ったプロビジョニング
[1] 以下の項目を実行する。
cc-cli system create --project "<任意の Project 名>" --name "<任意のシステム名>" --description "<説明(任意)>" --domain "<任意のサブドメイン>.<Route53 で作成したドメイン>"
[2] cc-cli environment create --system "<[1]で設定したシステム名>" --blueprint "bluep" --name "<任意の environment 名>" --clouds "AWS"
[3] 下記、項目を入力する。<KeyPairName>は、本章「3.1 CC サーバのインスタンス作成-[13]keypair を作成する。 『Create a new key pair』を選択し、任意の「Key pair name」を入力。「Download Key Pair」をクリックする。
<KeyPairName>」で入力した KeyPairName を入力する。
[4] 「Enter」を押す。
[5] 「Enter」を押す。
[6] 「Enter」を押す。
[7] 「Enter」を押す。
[8] 任意の IP アドレスを入力する。
[9] cc-cli environment show cc0311-2
[10] cc-cli application create --system "<[1]で設定したシステム名>" --name "<任意の application 名>" --description "<説明(任意)>"
[11] cc-cli application release "cc-tomcat" --url
"https://s3-ap-northeast-1.amazonaws.com/cloudconductor-test/sources/public/jpetstore.war" --protocol http --parameters '{"migration": {"type": "sql", "url":
"https://s3-ap-northeast-1.amazonaws.com/cloudconductor-test/sources/public/jpetstore_postgres. sql"}}'
[12] cc-cli application deploy "cc-tomcat" --environment "cc0311-2"
[13] 下記、①または、②どちらかの URL でブラウザにアクセスする。
① http://<サブドメイン>.<ドメイン>/< [10]で設定した application 名> ② http://<WebServer の PublicIP>/< [10]で設定した application 名>