You need to enable JavaScript to run this app.
导航

使用Ansible安装批量作业客户端

最近更新时间2023.09.08 10:10:12

首次发布时间2023.05.30 08:34:20

本文介绍如何使用开源工具Ansible,批量为Linux云服务器实例安装批量作业客户端。

什么是Ansible?

Ansible是一个基于Python开发的开源IT自动化工具,简单易用且安全可靠,使用OpenSSH实现数据传输(也可使用其它传输模式或者pull模式),远程在多个受控节点中完成自动化配置、应用程序部署、编排等多种任务。更多详情可查看Ansible

名词解释

名词说明
主控节点指安装Ansible工具,通过SSH协议远程登录、管理受控节点的服务器。
受控节点指需要被Ansible管理的服务器,本实践中指需要安装批量作业客户端的云服务器。

使用说明

节点说明

主控节点

受控节点

操作步骤

  1. 为主控节点服务器安装Ansible。

    本实践以操作系统为CentOS 7.9的云服务器为主控节点,更多操作系统安装方式请查看Installation Guide

    1. 登录作为主控节点的ECS实例,操作详情可查看登录Linux实例
    2. 执行如下命令,安装EPEL源。
      yum install -y epel-release
      
    3. 执行如下命令,安装Ansible。
      yum install -y ansible
      
  2. 配置Ansible。

    1. 执行如下命令,添加作为受控节点服务器的公网IP。
      vim /etc/ansible/hosts
      
    2. i键,添加受控节点公网IP地址。

      说明

      您还可以通过[$groupname$]的形式,为不同IP地址进行分组,方便按组进行批量操作。更多Ansible分组操作可查看Inventory basics

      例如按照登录实例的方式分为[keypair](通过密钥对登录)、[password]( 通过密码登录)两组。
    3. esc键,输入:wq,保存修改并退出。
    4. 执行如下命令,修改Ansible配置文件。
      vim /etc/ansible/ansible.cfg
      
    5. /键,输入host_key_checking搜索关键词。
    6. 删除host_key_checking = False行首的注释符#

      说明

      本操作可取消首次登录受控节点服务器时检测SSH主机密钥的操作。

    7. esc键,输入:wq,保存修改并退出。
  3. (可选)受控节点使用密钥对登录时,可创建登录受控节点的私钥文件。

    1. 执行如下命令,新建并编辑私钥文件。

      本实践中,使用密钥对登录的受控节点,均使用同一密钥对。

      vim /root/key.pem
      
    2. i键,将私钥信息粘贴入本文件。
    3. esc键,输入:wq,保存修改并退出。
    4. 执行如下命令,为私钥文件添加读写权限。
      chmod 600 /root/key.pem
      
  4. 为受控节点安装批量作业客户端。

    • 在主控节点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
      
  5. 确认各台受控节点实例批量作业客户端运行状态。

    • 执行如下命令,查看客户端在使用密钥对登录且分组为[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
      

      正常示例: