Ansible在我们运维工作中的主要工作就是帮助我们批量自动化部署一些生产上的需求。
由于Ansible是用Python开发的,是一款非常轻量级的自动化部署工具。
而且Ansible是通过SSH协议来进行管理其他机器的,我们只需要在安装Ansible的主机上编写一个SSH无密钥登陆的脚本,即可实现批量管理机器的工作。
其实自动化运维工具还有很多,比如puppet
、saltstack
、chef
、cfengine
,这些都可以说是Ansible
的前辈了。但是为什么现在大多数运维岗位的在职人员都使用的是Ansible
这款工具呢?
下面就来说一说它的优点:
|
|
安装epel之前需要配置epel yum源,可以使用阿里云的 http://mirrors.aliyun.com/epel/7/x86_64/
拓扑图:
Ansible 1.9和2.0的区别:
|
|
安装
|
|
Ansible配置文件
配置文件路径:
|
|
主配置文件:
|
|
Ansible命令集
|
|
Ansible命令使用说明
先看一个最简单的命令:
|
|
Ansible命令使用详解:
|
|
主要组成部分:
|
|
Ansible主机清单配置
路径:/etc/ansible/hosts
使用方法:
|
|
Ansible模块
- command模块:使用ansible自带模块执行命令 如果要用 > < | & ‘ ‘ 使用shell模块
|
|
- shell模块:调用bash执行命令
|
|
- copy模块:复制本地文件至远程服务器,并能够修改其属性
源文件复制:
|
|
- file模块:设置文件属性
|
|
- fetch模块:从远程服务器拉取文件至本机;只能fetch文件,不能fetch目录;如果需要拉目录,先打包,再拉到本机。
|
|
- cron模块:定时执行任务的模块
|
|
- yum模块:yum安装软件
|
|
- service模块:服务程序管理
|
|
- user模块:用户管理
|
|
- group模块:组管理
|
|
- ping模块:检测主机是否存活
- setup模块:获取指定主机的facts
facts就是变量,内建变量 。每个主机的各种信息,cpu颗数、内存大小等。会存在facts中的某个变量中。调用后返回很多对应主机的信息,在后面的操作中可以根据不同的信息来做不同的操作
|
|
- selinux模块:管理selinux
|
|
- script脚本模块:将本地的脚本复制到远程主机并在远程主机执行
|
|
- hostname模块:与系统命令无关,直接修改 比如centos6和centos7
|
|
使用yml配置文件,执行拷贝文件的功能
|
|
使用yml配置文件,启动&安装HTTPD
|
|
使用yml,创建用户,并配置其属性
|
|
使用YML配置文件,使用变量 -m setup,并在yml中引用变量
|
|
使用变量配置nginx中虚拟主机的监听端口号
|
|
roles实验
|
|
本文出自Maxie’s Notes博客,转载请务必保留此出处。