我的剧本(/home/user/Ansible/dist/playbooks/test.yml
):
- hosts: regional_clients
tasks:
- shell: /export/home/user/ansible_scripts/test.sh
register: shellout
- debug: var=shellout
- hosts: web_clients
tasks:
- shell: /var/www/html/webstart/release/ansible_scripts/test.sh
register: shellout
- debug: var=shellout
- command: echo catalina.sh start
register: output
- debug: var=output
在[regional_clients]
中指定了/home/user/Ansible/webproj/hosts
组,[web_clients]
中指定了/home/user/Ansible/regions/hosts
组。
有没有办法可以完成上述工作?目前,由于默认广告资源文件[regional_clients]
中未定义[web_clients]
或/home/user/Ansible/dist/hosts
,因此运行该剧本将失败。
答案 0 :(得分:1)
是的,您可以编写一个简单的shell脚本:
#!/bin/sh
cat /home/user/Ansible/webproj/hosts /home/user/Ansible/regions/hosts
并在Ansible中将其称为dynamic inventory:
ansible-playbook -i my_script test.yml
然而,这个问题在我看来与您的组织有关,而不是技术问题。如果您的环境如此复杂并由不同方维护,则使用某种配置数据库(以及Ansible中的动态库存来检索数据),而不是用户路径中的单个文件。 < / p>