Ansible
將包含的 ansible 任務作為獨立任務執行
我有許多 Ansible 劇本,它們將被包含在更大的劇本中。例如:
--- - name: Add user me user: name=me comment="Me" uid=9999 groups=somegroup - name: Add my ssh public key authorized_key: user=me key="{{ lookup('file', 'id_rsa.pub') }}"
有沒有辦法傳入主機名並從命令行將其作為獨立任務執行,還是我需要創建另一個劇本來自己執行這兩個任務?
實現這一目標有兩個要求:-
- 您嘗試定位的主機必須在清單文件中
- 您需要在要執行的角色中標記任務
- name: Add user me user: name=me comment="Me" uid=9999 groups=somegroup tags: this_role - name: Add my ssh public key authorized_key: user=me key="{{ lookup('file', 'id_rsa.pub') }}" tags: this_role
那麼你就可以:-
ansible-playbook foo.yml -i hosts -t this_role --limit host.example.com
並不是說它仍在執行包含完整劇本的劇本,而是將執行的任務限制為僅與標籤匹配的任務。剩餘的任務將被跳過。