2.2. 运行网络 Ansible Playbook
如果要每天运行特定的命令,您可以将它保存在 playbook 中,并使用 ansible-playbook
而不是 ansible 运行它。该 playbook 可以在命令行中存储随标志提供的大量参数,而在命令行中键入 less。您需要两个文件,即 playbook 和清单文件。
先决条件
从此处 下载 first_playbook.yml
。
playbook 类似如下:
标签 | 描述 |
---|---|
|
此处禁用 Ansible 的原生事实收集( |
playbook 从上面的命令行设置 7 个值的三个值:
-
组(
主机:所有
) -
连接方法(
connection: ansible.netcommon.network_cli
)和 - 模块(在每个任务中)。
在 playbook 中设置这些值后,您可以在命令行中省略这些值。playbook 还添加了一个第二项任务来显示配置输出。
从系统收集事实时,通过特定于集合的事实模块(如 vyos.vyos.vyos_facts
或 ansible.builtin.setup
)时,收集的数据将保留在内存中供将来的任务使用,而不是写入控制台。
当模块在 playbook 中运行时,输出将保存在内存中,供将来的任务使用,而不是写入到控制台。对于大多数其他模块,您必须明确注册变量,以存储和重复使用模块或任务的输出。
有关事实的更多信息,请参阅 Ansiible Playbook 参考指南 中的 [Ansible 事实]。
以下调试任务可让您在 shell 中看到结果。
流程
使用以下命令运行 playbook。
ansible-playbook -i vyos.example.net, -u ansible -k -e ansible_network_os=vyos.vyos.vyos first_playbook.yml
playbook 包含一个包含两个任务的 play,并生成如下所示的输出。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 现在,您可以检索设备配置,您可以尝试使用 Ansible 更新它。
从此处 下载
first_playbook_ext.yml
,这是第一个 playbook 的扩展版本:playbook 类似如下:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 扩展的第一个 playbook 在一个 play 中有五个任务。
使用以下命令运行 playbook。
ansible-playbook -i vyos.example.net, -u ansible -k -e ansible_network_os=vyos.vyos.vyos first_playbook_ext.yml
$ ansible-playbook -i vyos.example.net, -u ansible -k -e ansible_network_os=vyos.vyos.vyos first_playbook_ext.yml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出显示对配置所做的 Ansible 的更改:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow