3

我有一个格式如下的剧本:

---
- hosts: myIP
  tasks:
  - name: Install a yum package in Ansible example
    yum:
      name: ThePackageIWantToInstall
      state: present

其中myIPThePackageIWantToInstall是变量。

当作业模板运行时,我希望额外变量弹出窗口中的用户能够使用:

myIP = 192.168.1.1
ThePackageIWantToInstall = nano

由于文档没有提供通过作业模板提供变量的示例,这可能吗?

4

2 回答 2

2

是的。

- name: Do The Thing
  hosts: "{{ foo }}"
  roles:
   - "{{ role }}"

需要胡须和引号。


从弹出窗口运行

(我不使用它,但建议将其作为编辑,谢谢...)

富:价值

于 2018-07-25T13:23:03.617 回答
1

我用 add_hosts 实现了类似的事情。这里我不是安装包,而是使用从命令行传递的名称创建文件。任意数量的主机(以逗号分隔,可以从命令行传递)。

# cat addhost2.yml
- hosts: localhost
  gather_facts: no
  tasks:
    - add_host:
        name: "{{ item }}"
        groups: hosts_from_commandline
      with_items: "{{ new_hosts_passed.split(',') }}"


- hosts: hosts_from_commandline
  tasks:
    - name: Ansible create file with name passed from commandline
      file:
        path: "/tmp/{{ filename_from_commandline }}"
        state: touch
# ansible-playbook -i hosts addhost2.yml --extra-vars='new_hosts_passed=192.168.3.104,192.168.3.113 filename_from_commandline=lathamdkv'

希望这可以帮助

于 2018-08-03T09:19:15.393 回答