一、安装ansible
1、dnf安装ansible
首先得安装EPEL源,然后才能安装ansible。EPEL是一个软件仓库项目,为RHEL和Centos提供软件包信息
dnf -y install epel-release
dnf -y install ansible
2、查看安装是否完成
ansible --version
二、ansible相关配置文件
1、主机清单文件: /etc/ansible/hosts
该文件描述了被管理主机的信息(比如IP地址、被管理主机名等)
当使用ansible进行管理时,ansible默认从这一文件查找获取被管理主机的信息,主机信息以行为单位进行组织,在运维中,通常我们会对若干台主机进行相同的运维操作;因此为了方便,我们可以将主机根据需要进行分组
eg:
[group 1]
192.168.1.100 ansible_ssh_user=root
192.168.1.101 ansible_ssh_user=root
2、ansible配置文件:/etc/ansible/ansible.cfg
该文件包含了ansible的默认配置,初学一般不需要修改这些配置
三、ansible运维模式
1、ad-hoc(临时安排)模式:直接通过ansible命令,对被管理主机进行管理
Ansible ad-hoc模式命令基本用法
ansible {主机名/主机地址/主机组} [-m 模块名] [-a 模块参数]
模块帮助文档查看命令:ansible-doc -l
或 ansible-doc 模块名
-m常用模块
ping模块:用于测试控制节点与被管理主机的连通性及控制节点是否能与被管理主机成功建立ssh连接
eg:ansible group1 -m ping
2、playbook(剧本)模式 :将管理操作,写入剧本文件中,控制节点将根据剧本内容,对被管理主机进行管理
四、管理主机与被管理主机建立连接
提供多种建立方法:
1)在主机清单文件/etc/ansible/hosts中指定 主机IP地址+用户名(ansible_ssh_user=xxx)+密码(ansible_ssh_pass=xxxxxx)
eg:
[group 1]
192.168.1.100 ansible_ssh_user=root ansible_ssh_pass=123456
192.168.1.101 ansible_ssh_user=root ansible_ssh_pass=123456
2)使用ansible命令-k参数 手工输入用户密码
eg:
ansible group1 -m ping -k 123456
3)配置ssh免密登录(推荐):在认证过程中,不需要提供用户名+密码信息
配置步骤:产生控制节点的固定公钥,将控制节点的固定公钥,保存至被管理主机
步骤1、产生固定公钥并查看
ssh-keygen #默认直接按回车即可
cat ~/.ssh/id_rsa.pub #查看产生的公钥
步骤2、将控制节点的固定公钥,保存至被管理主机
ssh-copy-id -i 被管理主机的用户@被管理主机IP
默认情况下,控制节点的公钥,将保存至被管理主机的用户的主目录~/.ssh/authorized_keys文件中