一、ansible基础
6台虚拟机(2cpu,1.5G以上内存,10G以上硬盘,1块网卡)
主机名 IP地址 角色
ansible40 192.168.4.40/24 管理主机
web41 192.168.4.41/24 托管主机
web42 192.168.4.42/24 托管主机
db43 192.168.4.43/24 托管主机
db44 192.168.4.44/24 托管主机
cache45 192.168.4.45/24 托管主机
1)ansible简介
1.什么是ansible
ansible是2013年推出的一款IT自动化和DevOps软件,2015年被RedHat收购,是基于python研发,糅合很多老运维工具的优点,实现了批量操作系统配置,批量程序部署,批量运行命令等功能
ansible可以实现:
自动化部署APP
自动化管理配置项
自动化持续交付
自动化(AWS)云服务管理
2.为什么选择ansible
选择一款配置管理软件,无外乎从以下几点来权衡利弊
活跃度(社区)
学习成本
使用成本
编码语言
性能
使用是否广泛
ansible优点:
只需要SSH和Python即可使用
无客户端
ansible功能强大,模块丰富
上手容易,门槛低
基于Python开发,做二次开发更容易
使用公司比较多,社区活跃
3.ansible特性
模块化设计,调用特定的模块完成特定任务
基于Python语言实现
paramiko
PyYAML(半结构化语言)
Jinja2
其模块支持JSON等标准输出格式,可以采用任何变成语言重写
部署简单
主从模式工作
支持自定义模块
支持playbook
易于使用
支持多层部署
支持异构IT环境
4.工作流程
2)ansible安装
1.软件依赖关系
对管理主机
要求Python 2.6或2.7
ansible使用以下模块,都需要安装
paramiko
PyHAML
Jinja2
httplib2
six
对于被托管主机
ansible默认通过SSH协议管理机器
被管理主机要开启ssh服务,允许ansible主机登录
在托管节点上也需要安装Python2.5或以上的版本
如果托管节点上开启了SELinux,需要安装libselinux-python
2.安装ansible
[root@ansible40 ~]# vim /etc/hosts
192.168.4.40 ansible40
192.168.4.41 web41
192.168.4.42 web42
192.168.4.43 db43
192.168.4.44 db44
192.168.4.45 cache45
安装及验证
在ansible托管主机上配置yum配置文件
安装 yum install ansible
验证ansible --version
[root@ansible40 ~]# cd ansible/
[root@ansible40 ansible]# yum -y install *.rpm
[root@ansible40 ~]# ansible --version
二、ad-hoc
1.主机定义与分组
安装ansible之后可以做一些简单的任务
ansible配置文件查找顺序
首先检测ANSIBLE_CONFIG变量定义的配置文件
其次检查当前目录下的./ansible.cfg文件
再次检查当前用户家目录下的~/ansible.cfg文件
最后检查/etc/ansible/ansible.cfg文件
/etc/ansible/ansible.cfg是ansible的默认配置文件路径
ansible.cfg配置文件:
inventory定义托管主机地址配置文件路径名
inventory指定的配置文件,写入远程主机的地址
格式:
#表示注释
[组名称]
主机名称或ip地址,其他参数
ansible.cfg配置文件: