IBM Cloud Docs
安装和配置 Ansible

安装和配置 Ansible

自动化服务器的配置和初始操作系统配置在上一步中完成。 在这一步骤中,将执行以下任务:

  1. 安装 Ansible.
  2. 添加 Ansible 集合
  3. 创建 Ansible 清单文件
  4. 使用 Ansible 保管库加密文件
  5. 测试连接

包括一个可选步骤,以 安装Ansible NSX-T 集合。 只有在使用 Ansible® 创建沙箱时,才需要可选步骤。

安装 Ansible

在自动化服务器的命令行上运行以下命令。

sudo apt update
sudo apt install ansible -y
sudo apt install python3-pip -y
ansible --version

这些命令用于以下项目:

  • 刷新系统的软件包索引。
  • 安装 Ansible® 软件。
  • 安装使用 WinRM 和 Ansible 时所需的 pip 软件包。
  • 确认 Ansible 已安装。

添加 Ansible 集合

Ansible 集合是额外的模块。 在此部署中,使用以下命令添加所需的集合:

ansible-galaxy collection install ansible.posix
ansible-galaxy collection install community.general
ansible-galaxy collection install ansible.windows
ansible-galaxy collection install community.windows
ansible-galaxy collection install juniper.device
ansible-galaxy collection install junipernetworks.junos

juniper.devicejunipernetworks.junos 集合只有在构建隔离恢复环境时才需要。

创建 Ansible 清单文件

  1. 为 Ansible 文件创建目录结构,并创建初始清单文件,以测试 Ansible 与 Ansible 主机的连接。 以 ansible 用户身份连接时,使用以下命令:

    sudo mkdir /swlib
    sudo mkdir /swlib/ansible
    
  2. 创建一个名为 hosts 的清单文件,其中有两个组:[LHBR]和 [VBR],其中包含 Linux® 加固存储库和 Veeam® 备份服务器的 IP 地址或 FQDN:

    touch /swlib/ansible/hosts
    vi /swlib/ansible/hosts
    

示例

用于不可变备份的 hosts 文件。

[lhbr]
lhbr01.test.ibmcloud.local ansible_user=root

[vbr]
prodbackup ansible_host=10.38.207.157 ansible_user=sa-ansible ansible_connection=winrm ansible_winrm_server_cert_validation=ignore

用于隔离恢复环境的 hosts 文件。

[lhbr]
lhbr01.test.ibmcloud.local ansible_user=root

[vbr]
prodbackup ansible_host=10.38.207.157 ansible_user=sa-ansible ansible_connection=winrm ansible_winrm_server_cert_validation=ignore

[vsrx]
gateway01 ansible_host=10.5.37.138 ansible_user=sa-ansible

使用 Ansible 保管库加密文件

Ansible vault 允许对值和数据结构进行加密,以保护成功运行 Ansible 游戏所需但不公开的敏感数据,如密码或私人密钥。 Ansible 提供密钥后,会在运行时自动解密已加密的内容。

Vault 采用文件级粒度,这意味着文件要么完全加密,要么未加密。 它使用 AES256 算法提供对称加密,并以用户提供的密码为密钥。 同一密码用于加密和解密内容。 ansible-vault 命令用于对文件进行初始加密,然后用于查看、编辑或解密数据。

  • 创建 Ansible 配置文件,详细说明 hosts 文件和保险库密码文件的位置。
  • 创建并加密一个名为 group_vars/vbr.yml 的文件,该文件包含 sa-ansible 用户访问 Veeam 备份服务器的密码。 之所以将 Veeam 备份服务器的密码放在此处,是为了使 ansible vbr -m win_ping 命令能正常工作。
  • 创建并加密一个名为 vault 的文件,该文件保存了加固备份存储库的密码,也可选择保存 vSRX 设备的密码。

vault_pass 文件的使用是一项可选任务,它可以创建并保护一个保存了保险库密码的文件。 如果选择不执行此任务,则需要在运行 Ansible 命令时在提示符下输入密码。

  1. 要使系统不提示我们输入保险库密码,请输入以下命令:

    touch ~/.vault_pass
    vi ~/.vault_pass
    
  2. 输入要用于保险库的密码,然后保存文件。

  3. 更改权限,只有 ansible 用户可以读取或写入 chmod 600 ~/.vault_pass

  4. 创建 Ansible 配置文件:

    cd /swlib/ansible
    touch ansible.cfg
    vi ansible.cfg
    
  5. 然后,在文件中使用以下文本:

    [defaults]
    inventory = /swlib/ansible/hosts
    vault_password_file = ~/.vault_pass
    
  6. 我们需要将 Windows® 服务器密码放入一个加密文件中。 Ansible 会自动从目录中读取包含变量(称为 group_vars 和 host_vars)的文件,并根据文件名将它们与组和主机关联起来。 下面的命令将创建一个名为 vbr.yml 的加密文件,该文件与清单文件中的 vbr 组 [vbr] 匹配。

    mkdir group_vars
    ansible-vault create group_vars/vbr.yml
    
  7. 在编辑器中输入密码:

    ansible_password: <password>
    
  8. Esc:wq 退出。

  9. 需要时,可使用以下命令修改文件:

    • ansible-vault edit group_vars/vbr.yml- 命令编辑文件。
    • ansible-vault decrypt group_vars/vbr.yml- 该命令对文件进行解密,以便使用其他编辑器查看或更改文件,例如,nano.
    • ansible-vault encrypt group_vars/vbr.yml- 查看或更改文件后,该命令将对文件进行加密。
  10. 以下命令将创建名为 vault 的加密文件:ansible-vault create vault.

  11. 在编辑器中输入以下命令,其中 <lhbr_password><sa_ansible_password> 是在计划阶段定义的密码。

vault_lhbr_password: <lhbr_password>
vault_sa_ansible_password: <sa_ansible_password>
  1. Esc:wq 退出。

测试连接

使用以下命令测试连接:

ansible lhbr -m ping
ansible vbr -m win_ping

如果成功,输出将显示每条命令的 SUCCESS

安装 Ansible NSX-T 集合

此步骤为可选步骤,只有在使用 Ansible 配置沙箱时才需要此步骤。

  1. 以 ansible 用户身份连接到 Ansible 控制节点。

  2. 安装 Python:sudo pip3 install --upgrade pyvmomi pyvim requests.

  3. 运行以下命令完成以下任务:

    • 为下载创建文件夹。
    • 克隆 Git 存储库。
    • 创建 Ansible 集合。
    • 安装本地构建的程序集。
    cd /swlib
    mkdir downloads
    cd downloads
    git clone https://github.com/vmware/ansible-for-nsxt.git
    cd ansible-for-nsxt
    ansible-galaxy collection build
    ansible-galaxy collection install vmware-ansible_for_nsxt-1.0.0.tar.gz