使用Ansible模板管理SSH用户的解决方法如下:
manage_ssh_user.yml
:---
- hosts: all
become: true
tasks:
- name: Create SSH user
template:
src: ssh_user.j2
dest: /etc/ssh/sshd_config
notify:
- restart sshd
handlers:
- name: restart sshd
service:
name: sshd
state: restarted
ssh_user.j2
,并在其中定义SSH用户的配置:# SSH用户配置
{% for user in ssh_users %}
AllowUsers {{ user }}
{% endfor %}
hosts
,并添加以下内容:[all]
host1 ansible_host=192.168.1.10
host2 ansible_host=192.168.1.11
[all:vars]
ssh_users:
- user1
- user2
ansible-playbook -i hosts manage_ssh_user.yml
这个playbook将根据ssh_user.j2
模板文件中定义的SSH用户配置,将其写入目标主机的/etc/ssh/sshd_config
文件中。然后,使用service
模块重启sshd
服务,以使更改生效。
请注意,为了使此解决方法正常工作,您需要在目标主机上具有足够的权限才能修改/etc/ssh/sshd_config
文件和重启sshd
服务。