安装和配置 Ansible
自动化服务器的配置和初始操作系统配置在上一步中完成。 在这一步骤中,将执行以下任务:
包括一个可选步骤,以 安装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.device
和 junipernetworks.junos
集合只有在构建隔离恢复环境时才需要。
创建 Ansible 清单文件
-
为 Ansible 文件创建目录结构,并创建初始清单文件,以测试 Ansible 与 Ansible 主机的连接。 以 ansible 用户身份连接时,使用以下命令:
sudo mkdir /swlib sudo mkdir /swlib/ansible
-
创建一个名为
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 命令时在提示符下输入密码。
-
要使系统不提示我们输入保险库密码,请输入以下命令:
touch ~/.vault_pass vi ~/.vault_pass
-
输入要用于保险库的密码,然后保存文件。
-
更改权限,只有 ansible 用户可以读取或写入
chmod 600 ~/.vault_pass
。 -
创建 Ansible 配置文件:
cd /swlib/ansible touch ansible.cfg vi ansible.cfg
-
然后,在文件中使用以下文本:
[defaults] inventory = /swlib/ansible/hosts vault_password_file = ~/.vault_pass
-
我们需要将 Windows® 服务器密码放入一个加密文件中。 Ansible 会自动从目录中读取包含变量(称为 group_vars 和 host_vars)的文件,并根据文件名将它们与组和主机关联起来。 下面的命令将创建一个名为
vbr.yml
的加密文件,该文件与清单文件中的 vbr 组 [vbr] 匹配。mkdir group_vars ansible-vault create group_vars/vbr.yml
-
在编辑器中输入密码:
ansible_password: <password>
-
按
Esc
和:wq
退出。 -
需要时,可使用以下命令修改文件:
ansible-vault edit group_vars/vbr.yml
- 命令编辑文件。ansible-vault decrypt group_vars/vbr.yml
- 该命令对文件进行解密,以便使用其他编辑器查看或更改文件,例如,nano
.ansible-vault encrypt group_vars/vbr.yml
- 查看或更改文件后,该命令将对文件进行加密。
-
以下命令将创建名为
vault
的加密文件:ansible-vault create vault
. -
在编辑器中输入以下命令,其中
<lhbr_password>
和<sa_ansible_password>
是在计划阶段定义的密码。
vault_lhbr_password: <lhbr_password>
vault_sa_ansible_password: <sa_ansible_password>
- 按
Esc
和:wq
退出。
测试连接
使用以下命令测试连接:
ansible lhbr -m ping
ansible vbr -m win_ping
如果成功,输出将显示每条命令的 SUCCESS
。
安装 Ansible NSX-T 集合
此步骤为可选步骤,只有在使用 Ansible 配置沙箱时才需要此步骤。
-
以 ansible 用户身份连接到 Ansible 控制节点。
-
安装 Python:
sudo pip3 install --upgrade pyvmomi pyvim requests
. -
运行以下命令完成以下任务:
- 为下载创建文件夹。
- 克隆 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