密码过期及密码复杂度、尝试登录多少次锁定登录多少秒这个配置涉及/etc/login.defs、/etc/pam.d/login、/etc/pam.d/system-auth这三个文件,编写yaml脚本,使用ansible配置所有主机的这三个文件
时间: 2023-12-21 12:03:02 浏览: 43
好的,您的第一个问题是关于密码过期及密码复杂度、尝试登录多少次锁定登录多少秒的配置,涉及/etc/login.defs、/etc/pam.d/login、/etc/pam.d/system-auth这三个文件。要编写yaml脚本,使用ansible配置所有主机的这三个文件。
为了实现这个需求,我们可以按照以下步骤操作:
1. 编写一个yaml脚本,指定要修改的文件路径和配置项。
2. 在yaml脚本中定义变量,以便将此脚本应用于所有主机。
3. 配置ansible服务器的ssh连接,允许连接到所有目标主机。
4. 运行ansible playbook,检查配置是否被正确应用于所有主机。
以下是一个简单的yaml脚本示例,用于配置/etc/login.defs、/etc/pam.d/login、/etc/pam.d/system-auth,以包括密码过期及密码复杂度、尝试登录多少次锁定登录多少秒的配置。
```yaml
---
- name: Configure password policies
hosts: all
become: yes
vars:
# Define the password policies you want to set
password_policy:
PASS_MAX_DAYS: 90
PASS_MIN_DAYS: 7
PASS_WARN_AGE: 14
PASS_MIN_LEN: 12
PASS_REMEMBERED: 5
FAIL_DELAY: 3
FAILLOG_ENAB: yes
FAIL_DELAY_SECS: 600
FAIL_LOCKOUT_COUNT: 3
# Define the files you want to modify
login_defs: /etc/login.defs
pam_login: /etc/pam.d/login
pam_system_auth: /etc/pam.d/system-auth
tasks:
- name: Configure login.defs
lineinfile:
path: "{{ login_defs }}"
regexp: '^{{ item.key }}\s'
line: "{{ item.key }}\t{{ item.value }}"
state: present
with_dict: "{{ password_policy }}"
notify: restart-login-service
- name: Configure pam login
template:
src: templates/login.j2
dest: "{{ pam_login }}"
notify: restart-login-service
- name: Configure pam system auth
template:
src: templates/system-auth.j2
dest: "{{ pam_system_auth }}"
notify: restart-login-service
handlers:
- name: restart-login-service
service:
name: login
state: restarted
```
在这个yaml脚本中,我们首先定义了一些变量,然后在任务中使用了这些变量。在实际操作中,您需要将这些变量替换为您自己的值。
任务中的第一个任务使用lineinfile模块来配置/etc/login.defs文件。该模块使用with_dict循环为每个密码策略设置一个新行。
第二个任务使用template模块将我们定义的login.j2模板复制到目标主机上的/etc/pam.d/login文件中。这个任务需要一个login.j2文件作为模板。您可以根据需要自定义这个模板。
第三个任务与第二个任务类似,它将我们定义的system-auth.j2模板复制到/etc/pam.d/login文件中。
最后一个区段定义了一个名为restart-login-service的处理程序。每当我们对这些文件进行更改时,这个处理程序都会重启login服务以使更改生效。
在运行此yaml脚本之前,您需要确保ansible服务器与所有目标主机都可以通过ssh进行连接,并且您已经在其中的/etc/ansible/hosts文件中配置了这些主机。
运行以下命令以运行这个yaml脚本:
```bash
ansible-playbook -i hosts configure-password-policies.yaml
```
这个命令将ansible操作与您的主机进行通信,并配置所有主机的密码策略。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pptx](https://img-home.csdnimg.cn/images/20210720083543.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)