Ansible配置文件更改

时间:2016-10-26 12:34:50

标签: ansible

所以,我是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中添加两个服务器,如果服务器有一些错误的信息,删除它并添加这两个服务器。任何帮助或指导将非常感谢。

1 个答案:

答案 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