Ansible 控制节点 - 它可以自行配置吗?

Ansible control node - can it configure itself?

我刚刚开始使用 Ansible - 如果这个问题被误导,请耐心等待。

我在网络上有几台服务器,我打算将其中一台设置为控制节点 (Rhel7.9)。我想在该系统上本地使用 ansible,使用一些感兴趣的剧本来配置自己,并在推广到其他系统之前将其作为一种测试来进行。我正在设置我的 ansible 配置和清单 - 从我正在阅读的所有内容来看,ansible 似乎旨在将配置简单地推送到托管节点......而不是做 1 次 运行对于您所在的机器。

如果我只是想从 ansible galaxy 中提取一个 playbook 并 运行 它在本地控制节点上怎么办?

这会不会像 运行ning 一样简单:

ansible-playbook -i "localhost," -c local playbook.yml

我什至需要设置库存和配置才能为我所在的机器执行此操作吗?是否有因为我的新手而遗漏的最佳实践?

谢谢!

问:"从 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,

Privilage escalation

运行 Ansible 作为用户并且成为 root。请参阅上面的 link 了解如何操作。例如编辑剧本

shell> cat playbook.yml
- hosts: localhost
  gather_facts: false
  become: true
  tasks:
    - command: ls -la /root/.ssh
      register: result
    - debug:
        var: result.stdout_lines