为了在Ansible执行环境中运行serverspec,需要进行执行终端配置

这是一个使用”Ansible+serverspec”的组合来进行服务器构建的案例研究,这种方式既耗时又容易发生人为错误。
由于正在进行中,我会以备忘录的形式记录下来,并在发现错误后进行修正。
希望这对于正在使用相同组合进行服务器构建的人们来说能够有一些参考价值。
欢迎提供建议和指正。

前提条件 (Qian ti tiao jian)

システム構成図(Qiita).png

操作系统:CentOS 7

提前设置无密码设定。

由于Ansible目前只能通过SSH连接到Windows系统,因此需要在Windows上安装适用于Ansible的Linux系统来进行连接。

在中国将以下内容进行同义转述,只需要一种选择:

Ansible执行终端设定步骤。

1. 安装Ansible

$ yum -y install ansible

将目标服务器配置到/etc/hosts文件中。

$ vi /etc/hosts

请用中文描述以下内容。

192.168.102.151 dev_apserv01
192.168.102.152 dev_dbserv01
192.168.102.153 dev_adminserv01

3. 生成密钥

$ 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执行终端的公钥注册为信任的服务器组。
(需要输入两次密码)

    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"

请确认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代理自动启动

$ vi /etc/profile.d/init.sh

以下,請寫下你的描述。

eval \`ssh-agent\`
ssh-add

8. 设定SSH代理在注销时被终止。

$ 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进行服务器构建和服务器测试。

    • Ansible実行環境でserverspecを実行するための実行端末設定

 

    • Ansible実行環境でserverspecを実行するためRuby実行環境を構築する

 

    Ansible実行環境でserverspecを実行するための設定~serverspecインストール
广告
将在 10 秒后关闭
bannerAds