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

标签 ansible rhel7

我刚刚开始使用 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,

<强> Privilage escalation

以用户身份运行 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/

相关文章:

linux - Chef-server-ctl 重新配置/在 Chef 服务器上创建管理员用户

linux - 切换用户 (su) 挂起

ansible - 有没有办法在 Ansible Inventory 文件中验证一个组的主机数量?

java - tomcat 在 RedHat 7 上没有写权限/usr/share/tomcat

Ansible:将变量设置为文件内容

python - 来自 with_items 的 Ansible 设置变量

C代码在RHEL7中构建并部署在RHEL6中,gdb不工作

linux - 静态变量没有被初始化

nginx - 错误!任务中未检测到任何操作。安西 bool

Ansible:在 postgres 中将角色附加到用户