ansible简介
- Ansible 是一个IT自动化工具,它能够配置系统、部署软件、编排更复杂的it任务,如连续部署或零停机时间滚动更新
- Ansible用python编写,尽管市面上已经又很多可供选择的配置管理解决方案 如(salt、puppet、chef等)但他们各有优劣,而ansible的特点在于它的简洁,让ansible在主流的配置管理系统中与众不同的一点便是,它并不需要你在想要配置的每个节点上安装自己的组件,同事提供的另一个优点是,如果需要的话,可以在不止一个地方控制你的整个基础架构。
ansible的工作原理
- 在ansible的管理体系中,存在“管理节点“和“被管理节点“
- 被管理节点通常被称为“资产"
- 在管理节点上,ansible将adhoc或者playbook转换成python脚本, 并且通过ssh将这些python脚本传递到被管理服务器上,在被管理服务器上依次执行,并实时的将结果返回给管理节点
(https://mermaidjs.github.io/)
ansible的安装方式
- yum方式
- pip方式
[root@localhost etc]#yum install epel-release
[root@localhost etc]#yum install python2-pip
[root@localhost etc]#pip install ansible
管理节点与被管理节点建立ssh信任关系
1.管理节点中创建密钥对
2.将本地的公钥传输到被管理节点
从管理节点copy文件到被管理节点
1.在管理节点去ping通被管理节点
2.把管理节点中的文件copy到被管理节点中
命令的详细解释
- all在ansible中,将其叫做匹配,也就是资产选择器,就是匹配资产(-i)参数指定的一部分
- -i 指定ansible的资产,也就是被管理服务器,列表记得用逗号隔开
- -m 指定要运行的模块,比如这里的ping模块和copy模块
- -a 指定模块的参数,这里的模块ping没有指定参数,模块copy指定了src 和dest参数
被管理节点的介绍
ansible资产分为:静态资产和动态资产
静态资产
资产文件可以自定义,默认的位置是在 /etc/ansible/hosts中,
列出刚刚自己自定义的所有资产中的主机
如果是指定某个组的话
资产选择器的使用
基本语法
ansible 资产选择器 -i 文件名 -m 模块 -a 模块指定的参数
资产选择器:
可以选择一台或者几台 或者一组 或者按照条件来选择服务器
选择一台,可以指定ip或者域名
1.ansible 1.1.1.1 -i inventory.ini --list-hosts
2.ansible www.test01.com inventory.ini --list-hosts
选择多台,要用,隔开
ansible 1.1.1.1,2.2.2.2 -i inventory.ini --list-hosts
选择一组(web_server 是组名 里面包括很多台主机)
ansible web_server -i inventory.ini --list-hosts
使用 * 匹配
ansible 12.12.12.1* -i inventory.ini --list-hosts
并集
找出两个组中所有的主机ip
ansible 组1:组2 -i inventory.ini --list-hosts
交集
找出两个组中相同的主机ip
ansible 组1:&组2 -i inventory.ini --list-hosts
排除
找出两个组中 不相同的ip
ansible 组1:!组2 -i inventory.ini --list-hosts