本文介绍如何使用开源工具Ansible,批量为Linux云服务器实例安装批量作业客户端。
Ansible是一个基于Python开发的开源IT自动化工具,简单易用且安全可靠,使用OpenSSH实现数据传输(也可使用其它传输模式或者pull模式),远程在多个受控节点中完成自动化配置、应用程序部署、编排等多种任务。更多详情可查看Ansible。
名词 | 说明 |
---|---|
主控节点 | 指安装Ansible工具,通过SSH协议远程登录、管理受控节点的服务器。 |
受控节点 | 指需要被Ansible管理的服务器,本实践中指需要安装批量作业客户端的云服务器。 |
节点 | 说明 |
---|---|
主控节点 |
|
受控节点 |
|
为主控节点服务器安装Ansible。
本实践以操作系统为CentOS 7.9的云服务器为主控节点,更多操作系统安装方式请查看Installation Guide。
yum install -y epel-release
yum install -y ansible
配置Ansible。
vim /etc/ansible/hosts
i
键,添加受控节点公网IP地址。说明
您还可以通过[$groupname$]
的形式,为不同IP地址进行分组,方便按组进行批量操作。更多Ansible分组操作可查看Inventory basics
[keypair]
(通过密钥对登录)、[password]
( 通过密码登录)两组。esc
键,输入:wq
,保存修改并退出。vim /etc/ansible/ansible.cfg
/
键,输入host_key_checking
搜索关键词。host_key_checking = False
行首的注释符#
。说明
本操作可取消首次登录受控节点服务器时检测SSH主机密钥的操作。
esc
键,输入:wq
,保存修改并退出。(可选)受控节点使用密钥对登录时,可创建登录受控节点的私钥文件。
本实践中,使用密钥对登录的受控节点,均使用同一密钥对。
vim /root/key.pem
i
键,将私钥信息粘贴入本文件。esc
键,输入:wq
,保存修改并退出。chmod 600 /root/key.pem
为受控节点安装批量作业客户端。
说明
通过本实践安装批量作业客户端后,无需重启受控节点。
在主控节点ECS实例中执行如下命令,为使用密钥对登录且分组为[keypair]
的ECS实例安装客户端。
说明
keypair
替换为您实际设置的分组名。~/key.pem
替换为您存放登录受控节点密钥的实际路径。sudo ansible -i /etc/ansible/hosts keypair -b --become-user=root -m shell -a 'sudo bash -c "$(curl https://assist-client.tos-cn-beijing.volces.com/install.sh)"' --private-key=~/key.pem
您可以通过脚本响应,查看各台实例安装进度与结果。
在主控节点ECS实例中执行如下命令,输入受控节点ECS实例登录密码,为使用密码登录且分组为[password]
的实例安装客户端。
说明
请将password
替换为您实际设置的分组名。
sudo ansible -i /etc/ansible/hosts password -b --become-user=root -m shell -a 'sudo bash -c "$(curl https://assist-client.tos-cn-beijing.volces.com/install.sh)"' -k
确认各台受控节点实例批量作业客户端运行状态。
执行如下命令,查看客户端在使用密钥对登录且分组为[keypair]
的ECS实例中的运行状态。
sudo ansible -i /etc/ansible/hosts keypair -b --become-user=root -m shell -a 'systemctl status assist-client.service' --private-key=~/key.pem
正常示例:
执行如下命令,输入受控节点实例的登录密码,查看客户端在使用密码登录且分组为[password]
的ECS实例中的运行状态。
sudo ansible -i /etc/ansible/hosts password -b --become-user=root -m shell -a 'systemctl status assist-client.service' -k
正常示例: