我有许多 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') }}"
Run Code Online (Sandbox Code Playgroud)
有没有办法传入主机名并从命令行将其作为独立任务运行,或者我是否需要创建另一个剧本来自己运行这两个任务?
小智 6
要实现这一点,有两个要求:-
您需要在要运行的角色中标记任务
- 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
Run Code Online (Sandbox Code Playgroud)然后你可以:-
ansible-playbook foo.yml -i hosts -t this_role --limit host.example.com
Run Code Online (Sandbox Code Playgroud)
并不是说这仍在运行包含完整剧本的剧本,而是将运行的任务限制为仅与标签匹配的任务。其余任务将被跳过。
归档时间: |
|
查看次数: |
9553 次 |
最近记录: |