如何在 Ansible 脚本中使用变量

Ansible 支持使用变量来更好地定制任务和玩本的执行,从而可以使用相同的玩本与不同的目标和环境。

变量可以来自不同的来源,例如播放簿文件本身或被导入播放簿的外部变量文件。

要看看变量在实践中是如何工作的,我们将创建一个新的测试图书,它将打印两个变量的值,‘用户名’和‘home_dir’。

1nano ~/ansible-practice/playbook-02.yml

然后将以下行添加到新播放簿文件中:

 1[label ~/ansible-practice/playbook-02.yml]
 2---
 3- hosts: all
 4  vars:
 5    - username: sammy
 6    - home: /home/sammy   
 7  tasks:
 8    - name: print variables
 9      debug:
10        msg: "Username: {{ username }}, Home dir: {{ home }}"

保存并关闭文件,当你完成编辑。

游戏簿的vars部分定义了将被注入到该游戏的范围内的变量列表.所有任务,以及可能包含在游戏簿中的任何文件或模板,都将可以访问这些变量。

要在您的库存文件的服务器上尝试此播放本,请运行ansible-playbook,使用您在运行我们的第一个示例时之前使用的相同连接参数。

1ansible-playbook -i inventory playbook-02.yml -u sammy

你会看到这样的输出:

 1[secondary_label Output]
 2
 3PLAY [all] ***********************************************************************************************************************************************************************************
 4
 5TASK [Gathering Facts] ***********************************************************************************************************************************************************************
 6ok: [203.0.113.10]
 7
 8TASK [print variables] ***********************************************************************************************************************************************************************
 9ok: [203.0.113.10] => {
10    "msg": "Username: sammy, Home dir: /home/sammy"
11}
12
13PLAY RECAP ***********************************************************************************************************************************************************************************
14203.0.113.10              : ok=2 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0

打印变量任务将使用调试模块来打印我们在游戏簿的vars部分中定义的两个变量的值。

Published At
Categories with 技术
comments powered by Disqus