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:控制分组
可以对不同的主机和组执行不同的操作,执行哪些操作呢?
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对被控端主机进行管理了
|