11-ansible配置和使用

发布时间 2023-09-12 16:42:33作者: 搬砖业余人士

ansible配置和使用

ansible配置信息

ansible安装方式

使用yum安装

需要先安装一个epel-release包,然后再安装 ansible:

yum install epel-release -y
yum install ansible -y

使用apt安装

见离线网页文件

ansible应用结构

安装目录如下:

配置文件目录:/etc/ansible;包括ansible.cfg、hosts等

执行文件目录:/usr/bin

lib库依赖目录:/usr/lib/python2.7/site-packages/ansible

help文档目录:/usr/share/doc/ansible-2.9.27

man文档目录:/usr/share/man/manX

ansible文件查找顺序

ansible与我们其他的服务在这一点上有很大不同,这里的配置文件查找是从多个地方找的,顺序如下:

  1. 检查环境变量ANSIBLE_CONFIG指向的路径文件(export ANSIBLE_CONFIG=/etc/ansible.cfg);
  2. ./ansible.cfg:检查当前目录下的ansible.cfg配置文件
  3. ~/.ansible.cfg,检查当前用户home目录下的.ansible.cfg配置文件;
  4. /etc/ansible/ansible.cfg:检查软件安装目录下安装时自动产生的配置文件。

从以上可以看出,ansible的配置文件可以在上面4个位置存在,看个人习惯;本文涉及的ansible.cfg配置文件都在/etc/ansible目录下

ansile配置文件

ansible 有许多参数,下面我们列出一些常见的参数:

inventory = /etc/ansible/hosts		#这个参数表示资源清单inventory文件的位置,也就是配置被管理主机列表的位置
library = /usr/share/ansible		#指向存放Ansible模块的目录,支持多个目录方式,只要用冒号(:)隔开就可以
forks = 5		#并发连接数,默认为5
sudo_user = root		#设置默认执行命令的用户
remote_port = 22		#指定连接被管节点的管理端口,默认为22端口,建议修改,能够更加安全
host_key_checking = False		#设置是否检查SSH主机的密钥,值为True/False。关闭后第一次连接不会提示配置实例
timeout = 60		#设置SSH连接的超时时间,单位为秒
log_path = /var/log/ansible.log		#指定一个存储ansible日志的文件(默认不记录日志)

ansible.cfg文件中的配置也可以不修改,按照默认配置修改对应的文件

ansible主机列表

在配置文件中,我们提到了资源清单,这个清单就是我们的主机清单,里面保存的是一些 ansible 需要连接管理的主机列表:

1、定义主机组,在主机组中加入ip或主机名

[CI-testserver]
192.168.1.69:2222#也可以这样指定ssh连接端口
192.168.1.65
192.168.1.75
192.168.1.82
192.168.1.52

# 定义嵌套组(主组套子组,子组用:chidren定义)
[cluster:children]		# 集群组
webserver      # webserver组
database		# database组
CI-testserver	# CI-testserver组

#要使用ansible操作本地主机
[runner-local]
localhost ansible_connection=local

2、直接定义

192.168.1.69
192.168.1.65

更详细的可以参考连接(3条消息) ansible主机清单和动态主机清单_ansible查看主机列表_识途老码的博客-CSDN博客

ansible配置公钥

  1. 生成私钥:

    ssh-keygen
    
  2. 向主机分发公钥

    ssh-copy-id root@192.168.1.82
    

    这样就可以实现控制主机无密码登录主机清单中的设备

  3. 如果出现错误-bash: ssh-copy-id: command not found,需要在控制主机安装一个包

    yum -y install openssh-clientsansible
    

测试主机连通性

我们使用ansible CI-testserver -m ping命令来进行主机连通性测试

image-20230531190201077

执行剧本

如果写好了剧本可以使用下面的命令执行

ansible-playbook /etc/ansible/playbook/test.yml
#剧本的path看自己的习惯放在哪里

......更新中