ansible配置文件
配置ansible
参考链接:
https://www.cnblogs.com/lvzhenjiang/p/14386197.html
查看ansible当前使用的配置文件
[student@workstation ansible]$ ansible --version|grep cfg
## 打印结果
config file = /etc/ansible/ansible.cfg
ansible并不只有一个配置文件,可以有多个配置文件.如果你没有创建其他的ansible配置文件,就会使用默认配置文件: /etc/ansible/ansible.cfg
ansible配置文件的优先级
- 首先检测
ANSIBLE_CONFIG
变量定义的配置文件—禁止使用,危险系数高
- 其次检查当前目录下的
./ansible.cfg
文件 - 再次检查当前用户home目录下的
~/.ansible.cfg
—推荐用法
- 最后检查默认配置文件
/etc/ansible/ansible.cfg
ansible配置文件参数详解
ansible基本配置
[defaults]
# 指定主机清单文件
inventory = /etc/ansible/hosts
# 表示使用omaidb用户进行ssh连接
remote_user = omaidb
# 表示使用omaidb用户连接ssh时不提示输入密码
## 设置不提示输入密码时,前提条件是该用户可以ssh免密登录
ask_pass = false
# 不检查对应服务器的host_key,建议取消注销
host_key_checking = false
# ansible日志路径
log_path = /var/log/ansible.log
[inventory]
ansible提权配置
# 如果remote_user不是root,需要做特权操作,就必须要配置这个sector
[privilege_escalation]
# 是否提权,true/false
become = true
# 提权方式,一般是sudo
become_mettod = sudo
# 提权到哪个用户
become_user = root
# 进行sudo操作时是否需要输入密码,设为false时需要被管理主机上`sudoers`配置sudo免密
become_ask_pass = false
如果你的节点数量比较多,建议使用ansible-playbook中的authorized_key
模块进行配置
主机清单格式配置
[inventory]
# 允许从哪些文件格式中读取主机清单
enable_plugins = host_list,script,auto,yaml,ini,toml
查看默认配置文件的默认参数
# ansible 2.14.17版本 默认的/etc/ansible/ansible.cfg是空的.
# 下载官方配置示例
wget -cP /etc/ansible https://raw.githubusercontent.com/ansible/ansible/refs/heads/stable-2.9/examples/ansible.cfg
# 查看默认配置示例的参数
grep -Ev "^#|^$" /etc/ansible/ansible.cfg
生产环境最常用操作
- 创建ansible配置文件
# 创建ansible目录
mkdir ~/ansible
# 编辑配置自定义文件
vim ~/ansible/ansible.cfg
- 创建主机清单
# 编辑主机清单
vim ~/ansible/inventory
主机清单示例如下:
https://blog.csdn.net/omaidb/article/details/120896814
[student] # 红帽294练习环境组
workstation.lab.example.com
server[a:d].lab.exmaple.com
astion.lab.example.com
[test] # test组
node1
[proxy] # proxy组
node2
[webserver] # webserver组
node[3:4]
[database] # 数据库组
node5
# webserver主机组
[webservers]
192.168.0.11 ansible_ssh_user=root ansible_ssh_pass=123.com ansible_ssh_port=3333
192.168.0.12 ansible_ssh_user=root ansible_ssh_pass=123.com
## ansible_ssh_user=root 指定主机登陆用户名为root
## ansible_ssh_pass=123.com 指定主机登陆用户的密码为123.com
## ansible_ssh_port=3333 指定ssh的端口
# 定义嵌套组(主组套子组,子组用:chidren定义)
[cluster:children] # 集群组
webserver # webserver组
database # database组
- 查看主机列表
# 查看所有主机列表
ansible all --list-host
## -m 调用ping模块
ansible node1,node2 -m ping
生产环境ansible.cfg配置
# 基本配置
[defaults]
## 主机清单路径
## inventory = /root/ansible/inventory
inventory = ~/ansible/inventory
# ssh并发数量
# forks = 10
## ssh远程登录用户
## remote_user = devops
## False 远程登录不提示输入密码
## True 提示输入密码
ask_pass = False
## 不弹出确认指纹
host_key_checking = False
[inventory]
# 允许从哪些文件格式中读取主机清单
enable_plugins = host_list,script,auto,yaml,ini,toml
# 特权配置
[privilege_escalation]
## 允许进行提权
become = True
## 提权方式是sudo
become_mettod = sudo
## 提权到root用户
become_user = root
## 提权时不需要输入密码
become_ask_pass = False