使用Ansible中的Ad-Hoc命令将字符串写入文件

时间:2016-12-22 21:28:59

标签: ansible ansible-ad-hoc

我是Ansible的初学者并尝试使用 Ad-Hoc命令将字符串写入文件我正在尝试使用replace模块。我要写的文件是/etc/motd/

ansible replace --sudo /etc/motd "This server is managed by Ansible"

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:3)

查看lineinfile module用法和Ad hoc commands的一般语法。

您正在寻找的是:

ansible target_node -b -m lineinfile -a 'dest=/etc/motd line="This server is managed by Ansible"'

以扩展形式:

ansible target_node --become --module-name=lineinfile --args='dest=/etc/motd line="This server is managed by Ansible"'

说明:

  • target_node是Ansible inventory file

  • 中定义的主机名或组名
  • --become-b)指示Ansible使用sudo

  • -module-name-m)指定要运行的模块(lineinfile此处)

  • --args-a)将参数传递给模块(这些更改取决于模块)

    • dest指向目标文件
    • line指示Ansible确保文件中包含特定行

如果您想要替换/etc/motd的全部内容,请使用copy module

ansible target_node -b -m copy -a 'dest=/etc/motd content="This server is managed by Ansible"'

注意其中一个参数已相应更改。