Ansible実行環境でserverspecを実行するための実行端末設定
何かと手間が掛かかる上に人的ミスの起こりやすいサーバー構築を「Ansible+serverspec」の組み合わせで行ったケーススタディです。
現在進行形の為、備忘録的に書き留めているので、ミスに気付き次第修正をかけていきます。
同様の組み合わせでサーバー構築されている方にとって少しでも参考になれば幸いです。
アドバイス・ご指摘も助かります。
前提条件
サーバ構成図:
※設定するサーバの種類は以下の3つとする。
APサーバ(以降、dev_apserv01と呼ぶ)
DBサーバ(以降、dev_dbserv01と呼ぶ)
開発管理サーバ兼バッチスケジューラ(以降、dev_adminserv01と呼ぶ)
OS:CentOS 7
事前にノーパスワード設定をしておく。
※現状AnsibleはSSH前提でWindowsからネイティブには接続できないためWindowsにAnsible用のLinuxをインストールする必要がある。
Ansible実行端末設定手順
1.Ansibleインストール
$ yum -y install ansible
2./etc/hostsに接続先サーバを設定
$ vi /etc/hosts
$ yum -y install ansible
$ vi /etc/hosts
以下を記述する
192.168.102.151 dev_apserv01
192.168.102.152 dev_dbserv01
192.168.102.153 dev_adminserv01
3.KEYの生成
$ ssh-keygen -t rsa -N ""
/root/.ssh/id_rsa
/root/.ssh/id_rsa.pub
4.KEY情報を覚える状態に設定
$ eval \`ssh-agent\`
$ ssh-add
5.接続先サーバへの公開キー配布と権限付与
それぞれのサーバに対し、
(1)SSHで接続して.sshフォルダを作成する(すでにある場合は何もしない)
(2)Ansible実行端末の公開キーを信頼するサーバ群として登録する
(2回パスワードを求められる)
- dev_apserv01への配布
$ ssh root@dev_apserv01 "mkdir ~/.ssh > /dev/null 2>&1;exit"
$ cat /root/.ssh/id_rsa.pub | ssh root@dev_apserv01 "cat > .ssh/authorized_keys && chmod 600 .ssh/authorized_keys"
- dev_dbserv01への配布
$ ssh root@dev_dbserv01 "mkdir ~/.ssh > /dev/null 2>&1;exit"
$ cat /root/.ssh/id_rsa.pub | ssh root@dev_dbserv01 "cat > .ssh/authorized_keys && chmod 600 .ssh/authorized_keys"
- dev_adminserv01への配布
$ ssh root@dev_adminserv01 "mkdir ~/.ssh > /dev/null 2>&1;exit"
$ cat /root/.ssh/id_rsa.pub | ssh root@dev_adminserv01 "cat > .ssh/authorized_keys && chmod 600 .ssh/authorized_keys"
6.Ansibleが接続対象サーバ群に自動接続可能かを確認
Ansible接続対象サーバ群をAnsible用のhostsファイルに登録する
$ vi /etc/ansible/hosts
操作するサーバ群をすべて記述
dev_apserv01
dev_dbserv01
dev_adminserv01
[ ]で括って操作するグループ名を作成
後の操作で対象とするサーバをグループ名で指定する為
ここでは将来APサーバが増えることを想定して[webservers]と設定している
[webservers]
dev_apserv01
[dbservers]
dev_dbserv01
[adminservs]
dev_adminserv01
#開発管理サーバはAPサーバのテスト機を兼ねる為、2つを一括設定用にグループ化
[ap_admin]
dev_apserv01
dev_adminserv01
#開発管理サーバはdbservのテスト機を兼ねる為、2つを一括設定用にグループ化
[db_admin]
dev_dbserv01
dev_adminserv01
接続の確認を行う
$ ansible all -m ping
下記が表示されたら接続完了
dev_adminserv01 | success >> {
"changed": false,
"ping": "pong"
}
dev_apserv01 | success >> {
"changed": false,
"ping": "pong"
}
dev_dbserv01 | success >> {
"changed": false,
"ping": "pong"
}
7.SSH-agentが自動起動するよう設定
$ vi /etc/profile.d/init.sh
以下を記述
eval \`ssh-agent\`
ssh-add
8.SSH-agentがログアウト時にKILLされるよう設定
$ vi /root/.bash_logout
以下を記述
ssh-agent -k
9.コマンドヒストリを端末間で共有
$ vi /etc/profile.d/init.sh
以下を記述
function share_history {
history -a
history -c
history -r
}
PROMPT_COMMAND='share_history'
shopt -u histappend
export HISTSIZE=9999
10.環境変数の再読み込み
$ source /etc/profile.d/init.sh
以上でAnsible実行端末設定が完了です。
次回は、「Ansible実行環境でserverspecを実行するためRuby実行環境を構築する」について記述します。
目次:Vagrant-Ansible-Serverspecによるサーバ構築とサーバテスティング
Author And Source
この問題について(Ansible実行環境でserverspecを実行するための実行端末設定), 我々は、より多くの情報をここで見つけました https://qiita.com/CsFactoryitter/items/40dea7e8ff45b501ffda著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .