/etc/ansible/hosts 给个模板
时间: 2023-08-29 21:07:02 浏览: 166
以下是一个简单的 `/etc/ansible/hosts` 文件模板:
```
[group1]
host1
host2
[group2]
host3
host4
```
在这个模板中,有两个组:`group1` 和 `group2`,每个组中都有两个主机名。你可以通过指定组名来将任务分配给特定的主机组,或者将所有主机都包含在一个组中。
相关问题
/etc/ansible/ansible.cfg 给个模板
以下是一个简单的 Ansible 配置文件模板 /etc/ansible/ansible.cfg:
```
[defaults]
# inventory 文件的位置
inventory = /etc/ansible/hosts
# SSH 连接超时时间
timeout = 10
# 任务执行的最大并发数
forks = 5
# 日志文件的位置
log_path = /var/log/ansible.log
# 指定 SSH 用户名
remote_user = ansible
# 指定 SSH 私钥文件的位置
private_key_file = /root/.ssh/id_rsa
# 忽略 SSH 主机密钥检查
host_key_checking = False
# 指定 Ansible 模块的路径
module_path = /usr/share/ansible/modules
# 指定 Ansible 角色的路径
roles_path = /etc/ansible/roles
# 是否启用 Ansible 加速模式
accelerate = False
# 加速模式的传输类型
accelerate_port = 5099
accelerate_connect_timeout = 10
accelerate_daemon_timeout = 30
accelerate_multi_key = yes
# 设置 Ansible 的本地路径
local_tmp = $HOME/.ansible/tmp
remote_tmp = /tmp
# 是否启用 Ansible 事务
# 如果启用,Ansible 将在执行每个任务之前检查目标主机的状态
# 如果检查失败,任务将被终止并回滚
# 如果禁用,Ansible 会尽力执行每个任务
# 但是,如果某个任务失败,可能会导致系统处于不一致状态
# 所以建议启用事务模式
# 默认是启用
ansible_check_mode = False
# 是否启用 Ansible Facts
# Facts 是 Ansible 内置的模块,可以收集目标主机的系统信息
# 如果启用,Ansible 将在每次执行任务之前收集 Facts
# 如果禁用,Ansible 不会收集 Facts
# 默认是启用
gather_facts = True
# 指定 Ansible 的远程执行器
# 有三种可选的执行器:ssh、paramiko、local
# 默认是 ssh 执行器
# 如果你的目标主机无法使用 SSH,可以考虑使用 paramiko 执行器
# 如果你使用 Ansible 进行本地开发或测试,可以使用 local 执行器
#remote_port = 22
#remote_tmp = $HOME/.ansible/tmp
#remote_user = root
#ansible_connection = ssh
#ansible_ssh_pass = password
#ansible_ssh_private_key_file = /path/to/key
#ansible_ssh_common_args = -o StrictHostKeyChecking=no
#ansible_python_interpreter=/usr/bin/python3
#ansible_winrm_transport=ntlm
#ansible_winrm_server_cert_validation=ignore
#ansible_winrm_scheme=http
#ansible_winrm_port=5985
#ansible_winrm_user=Administrator
#ansible_winrm_password=Password123
#ansible_winrm_transport=ssl
# 指定 Ansible 的默认模块参数
# 这个选项可以用于指定 Ansible 模块的默认参数
# 如果模块需要额外的参数,可以在 playbook 中指定
# 如果不需要额外的参数,可以使用这个选项简化 playbook 的编写
# 如果模块本身已经有默认参数,那么 playbook 中指定的参数会覆盖默认参数
#module_name = command
#module_args = /bin/true
```
这只是一个简单的示例,你可以根据你的需要调整 Ansible 的配置文件。
密码过期及密码复杂度、尝试登录多少次锁定登录多少秒这个配置涉及/etc/login.defs、/etc/pam.d/login、/etc/pam.d/system-auth这三个文件,编写yaml脚本,使用ansible配置所有主机的这三个文件
好的,您的第一个问题是关于密码过期及密码复杂度、尝试登录多少次锁定登录多少秒的配置,涉及/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操作与您的主机进行通信,并配置所有主机的密码策略。