我是Ansible的初学者并尝试使用 Ad-Hoc命令将字符串写入文件我正在尝试使用replace
模块。我要写的文件是/etc/motd/
。
ansible replace --sudo /etc/motd "This server is managed by Ansible"
任何帮助将不胜感激!
答案 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"'
注意其中一个参数已相应更改。