我怎样才能把这段代码写成ansible(yaml)格式呢?
grep -i "^\s*PermitRootLogin\s* no\s*" /etc/ssh/sshd_config
if [ $? -eq "0" ]
then
echo "[ PASSED ] - Ensure SSH root login is disabled"
else
echo "[ FAILED ] - Ensure SSH root login is disabled"
fi
这是我所拥有的,我不知道该在什么时候写
- name: Check permitRootLogin
hosts: web
tasks:
- lineinfile:
path: /etc/ssh/sshd_config
state: absent
regexp: '^\s*PermitRootLogin\s* yes\s*'
check_mode: yes
register: permit
- name: Ensure SSH root
debug:
msg:
- "[ PASSED ] - Ensure SSH root login is disabled"
when: $regexp == 'PermitRootLogin yes'
2条答案
按热度按时间pb3skfrl1#
Ansible通常用于创建所需的状态。但是您可以像以前一样使用
check_mode: yes
来实现这一点,它并不是要实际写回更改,而只是模拟更改。然而,为此,您必须编写一个功能完整的任务。在本例中,您模拟将
PermitRootLogin
行更改为值yes
。如果发生了此更改,则该选项之前未设置为yes
。如果要在
PASSED
和FAILED
之间切换输出,则debug
任务可能如下所示:rslzwgfq2#
您始终可以通过打印出寄存器的输出进行调试:
Ansible中的每个模块都有不同的输出。
当您根据用例获得输出/时,您可以选择在条件中使用哪个属性:
在本例中,您想知道是否找到
PermitRootLogin yes
行。因此,您可以使用输出中的属性
found
: