04Ansible的配置文件

Ansible的配置文件

ansible配置文件的位置

  1. 当前系统的ANSIBLE_CONFIG的环境变量
  2. 当前的工作目录ansible.cfg
  3. 当前用户家目录下的.ansible.cfg (注意是以点开头的隐藏文件)
  4. 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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值