1.Ansible基础架构
Ansible 是一个IT自动化的配置管理工具
通过一个命令行完成一系列的操作,减少重复性的工作,提高工作效率
配置管理(服务的安装、配置、启动)和配置中心概念不同
假设要在10台Linux服务器上部署nginx服务,手动操作如下,要重复10次,有ansible就省事多了
1.登录服务器
2.输入对应的密码
3.部署yum install nginx
4.启动systemctl start nginx
5.退出登录
Ansible功能
批量执行远程命令,可以对N台主机同时进行命令的执行
批量配置软件服务,可以进行自动化的配置和管理服务
实现软件开发功能,jumpserver 底层使用ansible来实现的自动化管理
编排高级IT任务。
基础架构
现实中不可能每台机器上的配置都一样,所以要对被控端的服务器进行分组
inventroy:控制分组
- host:对单主机执行
- group:对组执行
可以对不同的主机和组执行不同的操作,执行哪些操作呢?
ad-hoc:单条命令
(对应的是一个模块,由python开发的模块,模块要执行,就要推送到被控端,被控端要有python环境,依赖网络推送,既要保证可靠,又要保证安全,就用到TCP/SSH)
playbook:多条命令
部署ansible
安装ansible
yum install ansible -y
查看版本信息
ansible --version
ansible 2.9.10
config file = /etc/ansible/ansible.cfg #配置文件路径
configured module search path = [u’/root/.ansible/plugins/modules’, u’/usr/share/ansible/plugins/modules’] #搜索模块的路径
ansible python module location = /usr/lib/python2.7/site-packages/ansible #python模块路径
executable location = /usr/bin/ansible #ansible执行的命令所在的位置
python version = 2.7.5 (default, Apr 11 2018, 07:36:10) [GCC 4.8.5 20150623 (Red Hat 4.8.5-28)]
ansible配置文件执行的优先级顺序
nearly all parameters can be overridden in ansible-playbook
or with command line flags. ansible will read ANSIBLE_CONFIG,
ansible.cfg in the current working directory, .ansible.cfg in
the home directory or /etc/ansible/ansible.cfg, whichever it
finds first
1.ANSIBLE_CONFIG 变量
2.读取一个项目中的ansible.cfg
3.读取当前用户家目录下的 .ansible.cfg
4./etc/ansible/ansible.cfg
例:
定义Inventory主机清单
vim /etc/ansible/hosts
(配置文件中的内容不用管,清空即可)
它有一个默认的组‘ all ’,代表文件中的所有主机
[webservers] #组的名字
192.168.51.188 #主机IP
192.168.51.189 #主机IP
可以在这组的下面再添加一组或多组进行管理
免密配置
必须要对被控端主机进行免密登录操作,不做免密操作的话,执行ansible指令会报错的
1.生成公钥私钥证书
ssh-keygen
2.然后将公钥拷贝到被控端主机
ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.51.188
ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.51.189
测试连通性
执行第一条ansible指令,测试一下主机之间的连通性
ansible webserver -m ping
ansible 主机组 -m 执行的模块(ping模块)
返回success
就表示主机是通的,就可以通过ansible对被控端主机进行管理了