【发布时间】:2015-10-04 14:38:00
【问题描述】:
我必须使用 Ansible 模块来编辑 /etc/ssh/sshd_config 文件 - 每次创建新用户时,我都想将其附加到这两行:
AllowUsers root osadmin <new_user>
AllowGroups root staff <new_group>
此时我正在使用 shell 模块执行 sed 命令,但如果可能的话,我想使用 lineinfile
- shell: "sed -i '/^Allow/ s/$/ {{ user_name }}/' /etc/ssh/sshd_config"
任何建议将不胜感激。
【问题讨论】:
-
在此类文件中使用
sed -i是危险的。至少,使用-i.bak进行备份以防万一。 -
我不想使用 sed,如果可能的话我想用 lineinfile 模块替换它
-
lineinfile 通常是一种反模式——在这种情况下,您可能希望将 sshd_config 文件带入配置管理中。
-
tedder42 在这个问题上似乎特别固执己见,因为我看到他在其他帖子上对
lineinfile的使用发表了同样的评论。真的,这是适合您的情况的问题。如果它符合您的目的,请不要犹豫使用 lineinfile。在模板中管理所有sshd_config可能没有意义。 -
请注意,sshd中可以多次设置AllowUsers,不需要将所有用户放在同一行。