簡體   English   中英

可以使用 ansible 變量在劇本中聲明主機嗎?

[英]Can ansible variables be used to declare hosts in a playbook?

我有以下格式的劇本:

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

其中myIPThePackageIWantToInstall是變量。

當作業模板運行時,我希望額外變量彈出窗口中的用戶能夠使用:

myIP = 192.168.1.1
ThePackageIWantToInstall = nano

由於文檔沒有提供通過作業模板提供變量的示例,這可能嗎?

是的。

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

需要胡子和引號。


從彈出窗口運行

(我不使用它,但有人建議將其作為編輯,謝謝...)

foo: 值

我用 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'

希望這可以幫助

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM