我刚刚开始使用 Ansible - 如果这个问题被误导,请耐心等待。
我的网络上有一些服务器,我计划将其中一台设置为控制节点 (Rhel7.9)。我想在该系统上本地使用 ansible,使用一些感兴趣的剧本来配置自身,并在推广到其他系统之前将其作为一种测试。我正在设置我的 ansible 配置和 list - 从我读到的所有内容来看,ansible 的设计似乎只是将配置推送到托管节点......而不是为您的机器执行 1 次运行已开启。
如果我只想从 ansible Galaxy 中提取剧本并在控制节点上本地运行它该怎么办?
这就像运行一样简单吗:
ansible-playbook -i "localhost," -c local playbook.yml
我是否需要设置 list 和配置才能为我所在的计算机执行此操作?是否有因为我的菜鸟而错过的最佳实践?
谢谢!
最佳答案
问:“从 Ansible Galaxy 中提取 playbook 并在控制节点上本地运行它。”
答:是的。例如剧本
shell> cat playbook.yml
- hosts: all
gather_facts: false
tasks:
- debug:
var: inventory_hostname
就像运行一样简单
shell> ansible-playbook playbook.yml -i localhost,
PLAY [all] **********************************************************************
TASK [debug] ********************************************************************
ok: [localhost] =>
inventory_hostname: localhost
...
最佳实践
查看剧本并确保您了解剧本将要配置的内容。
先检查语法
shell> ansible-playbook playbook.yml -i localhost, --syntax-check
- 试运行剧本并显示更改
shell> ansible-playbook playbook.yml -i localhost, --check --diff
- 如果您认为一切正确,请运行剧本
shell> ansible-playbook playbook.yml -i localhost,
以用户身份运行 Ansible 并成为 root。请参阅上面的链接了解如何操作。例如,编辑剧本
shell> cat playbook.yml
- hosts: localhost
gather_facts: false
become: true
tasks:
- command: ls -la /root/.ssh
register: result
- debug:
var: result.stdout_lines
关于Ansible 控制节点 - 它可以自行配置吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66693740/