所以,我是Ansible和YAML的一个完整的菜鸟,我正在努力学习,但这让我疯狂到目前为止......我正在使用ansible塔。我要做的是替换某些服务器的ntp.conf文件中的一些文本,并使用新服务器更新它们。所以我的剧本看起来像这样:
---
- hosts: range_1
tasks:
- name: ntp change
become_user: ansible
blockinfile:
content: |
server Server1 iburst
server Server2 iburst
dest: /etc/ntp.conf
insertafter: "Please consider joining the pool"
marker: "<!-- {mark} ANSIBLE MANAGED BLOCK -->"
- name: restart ntp
service: name=ntpd state=restarted
但是我得到了
PLAY RECAP
Host_1:ok = 1已更改= 0无法访问= 0失败= 0
Host_2:ok = 1 changed = 0 unreachable = 0 failed = 0
Host_3:ok = 1 changed = 0 unreachable = 0 failed = 0
Ansible正在运行,并且不会因错误而退出。但是,没有对系统进行任何操作。 (我假设因为更改了= 0)我确实登录到那些系统并且没有应用任何更改。
我已经检查过,语法是正确的,但我不确定我错过了什么。我真的需要了解如何在ntp.conf中添加两个服务器,如果服务器有一些错误的信息,删除它并添加这两个服务器。任何帮助或指导将非常感谢。
答案 0 :(得分:0)
对于任何可能正在阅读的人,当从ansible或ansible塔运行剧本时,将详细输出设置为2.当我运行它时,它向我显示错误:
AILED! =&GT; {“已更改”:false,“failed”:true,“msg”:“目的地 目录(/ etc)不是当前用户可写的。“}
但通过在我的剧本中添加become: yes
行来修复它现在看起来像这样:
---
- hosts: range_1
tasks:
- name: ntp change
become: yes
blockinfile:
content: |
server Server1 iburst
server Server2 iburst
dest: /etc/ntp.conf
insertafter: "Please consider joining the pool"
marker: "<!-- {mark} ANSIBLE MANAGED BLOCK -->"
- name: restart ntp
become: yes
service: name=ntpd state=restarted