Ansible的配置文件
ansible配置文件的位置
- 当前系统的ANSIBLE_CONFIG的环境变量
- 当前的工作目录ansible.cfg
- 当前用户家目录下的.ansible.cfg (注意是以点开头的隐藏文件)
- ansible默认的配置文件 在 /etc/ansible/ansible.cfg (全局默认位置)
优先级的顺序: ANSIBLE_CONFIG —> 当前工作目录下的ansible.cfg ——> 当前用户的家目录下.ansible.cfg的隐藏文件 ——> 全局的默认配置文件 /etc/ansible/ansible.cfg
优先级是从高到低
ansible配置文件的项目
配置文件详解:
[defaults]:通用配置项 配置远程的用户,连接的密码、主机清单的位置等
[inventory]:主机清单的配置段落,可以配置主机清单使用的插件
[privilege_escalation]:提权的配置,是否启用提权以及提权到哪个用户
[paramiko_connection]:早期在RHEL6中使用的连接插件,现在默认使用ssh进行连接
[ssh_connection]:ssh的连接配置项
[persistent_connection]:持久连接项 连接的超时时间、命令的超时时间
[accelerate]:连接加速项
[selinux]:配置selinux的选项,用来配置ansible支持特定的文件系统驱动以及lxc的容器配置
[colors]:ansible输出的颜色 定义错误或者是任务执行成功输出的颜色
[diff]:打印任务执行前后的差异
ansible配置案例
手动配置:
管理远程主机node1和node2
机器三台,一台master 安装ansible主控,两台node作为被控
被控上的操作:
useradd zhangsan
echo redhat|passwd --stdin zhangsan
vim /etc/sudoers.d/zhangsan
zhangsan ALL=(ALL) NOPASSWD:ALL
主控上的操作:
cp /etc/ansible/ansible.cfg /opt/ansible.cfg
vim /opt/ansible.cfg
[defaults]
inventory = /opt/hosts # 配置主机清单的位置
remote_user = zhangsan # 配置远程的用户
ask_pass = false # 配置连接时不需要验证密码即秘钥认证
interpreter_python = auto_legacy_silent # 屏蔽python的多版本警告信息
#ansible_python_interpreter = /usr/bin/python3.9 指定被控端上python的解释器
[privilege_escalation]
become=True # 启用提权
become_method=sudo # 提权的方式为sudo
become_user=root # 提权到root用户
become_ask_pass=False # 提权不需要密码
[ssh_connection]
ssh_args = -C -o ControlMaster=auto -o ControlPersist=60s # 配置ssh的连接加速选项
vim /opt/hosts
node1
node2
# 注意:node1和node2需要提前配置主机名和IP地址的绑定关系在/etc/hosts中
ssh-keygen # 生成ssh免密认证的公私钥
ssh-copy-id zhangsan@node1 # 发送公钥到被控端
ssh-copy-id zhangsan@node2
ansible all -m ping # 测试主控到被控的连通性
自动将被控端纳入到主控进行管理
全程都只在ansible的主控节点上操作,被控端不需要做任何操作
ansible all -m shell -a 'useradd devops' -u root -k 在所有被控上创建devops这个远程用户
- all:表示所有的主机
- -m:指定ansible使用的模块
- -a:指定模块的参数(也就是这个模块要干什么)
- -u:指定远程的用户(ansible的参数)
- -k:在连接时验证ssh的密码
ansible all -m shell -a 'mkdir /home/devops/.ssh;chown devops:devops /home/devops/.ssh;chmod 700 /home/devops/.ssh' -u root -k 为devops用户配置存放免密公钥的目录
ansible all -m shell -a 'echo "免密公钥文件的内容" >> /home/devops/.ssh/authorized_keys;chown devops:devops /home/devops/.ssh/authorized_keys;chmod 600 /home/devops/.ssh/authorized_keys' -u root -k 为devops用户注入免密的公钥,注入完成后免密登录测试
ansible all -m shell -a 'echo "devops ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers.d/devops' -u root -k 为devops用户配置sudo提权
最后进行连通性测试
ansible all -m ping
1416

被折叠的 条评论
为什么被折叠?



