linux自动化分为三个层次
1.OS provisioning 自动化安装系统
常用软件:cobbler(red hat 用、PXE
2.OS config 自动化配置系统
常用软件:cfengine,puppet,saltstack chef
3.OS deployment 深度定制自动化
常用软件:func(C/S,ssl)、fabric(ssh,python)、ansible
ansible:由于可以完成三个层次的事情所以比较强大。(基于ssh去连接到主机,所以先要认证)
ansible特性:
部署简单,只需在主控端部署Ansible环境,被控端无需做任何操作;
默认使用SSH协议对设备进行管理;
有大量常规运维操作模块,可实现日常绝大部分操作;
配置简单、功能强大、扩展性强;
支持API及自定义模块,可通过Python轻松扩展;
通过Playbooks来定制强大的配置、状态管理;
轻量级,无需在客户端安装agent,更新时,只需在操作机上进行一次更新即可;
提供一个功能强大、操作性强的Web管理界面和REST API接口——AWX平台。
ansible的架构及组件
Ansible:Ansible核心程序。
HostInventory:记录由Ansible管理的主机信息,包括端口、密码、ip等。
Playbooks:“剧本”YAML格式文件,多个任务定义在一个文件中,定义主机需要调用哪些模块来完成的功能。
CoreModules:核心模块,主要操作是通过调用核心模块来完成管理任务。
CustomModules:自定义模块,完成核心模块无法完成的功能,支持多种语言。
ConnectionPlugins:连接插件,Ansible和Host通信使用
安装ansible:yum安装
安装ansible:
1.下载epel源到/etc/yum.repos.d
#wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
2.yum clean all
3. yum makecache
4.yum install ansible -y
使用ansible准备
1.配置主机:
在安装有ansible服务器上/etc/hosts 文件中添加主机
格式:
[机组名] 例: [websevices]
机组ip或主机名 192.168.29.129
www.zrq1.com
2.配置认证:这里由于ansible需要到客户机上执行操作,所以需要对于客户机有登录权限,最好设置免密登录
1.创建证书
#ssh-keygen -t rsa -P ''
2.拷贝证书
#ssh-copy-id -i ./ssh/id_rsa.pub root@192.1168.1.162
3.测试是否成功
#ansible all -m pinng :像所有的客户机发送ping测试
ansible配置文件:
hosts:配置主机群
ansible基本语法:
ansible
ansible <host-pattern> [options]
host-pattern:在host中定义的主机群
all:所有主机
options:
-m:后面接模块
如果直接执行命令,不用模块可以省略
例如:ansible all -a ‘service httpd status’
查看客户机的httpd服务状态
-a:后面接模块的命令
ansible-doc -l:列出所有模块
常用模块:copy、cron、acl、group、user
ansible-doc -s 模块名:查看指定模块的参数
例:ansible webserver -m copy -a “src=/root/zrq.sh dest=/tmp/zrq/” 注意:命令不支持管道
用复制模块复制文件到websever服务器群的目录中
ansible相关命令:
ansible-doc
-l:查看所有模块
主要模块:
acl:
at:
cron
copy
command:
user
group
yum
service
file
-s:查看指定模块的参数
例如:ansible-doc -s copy
ansible的playbook模块:
1.基于YAML(一种文本格式)语言:
ymal文件扩展名通常为。yaml
-:表示
空格:表示
每个任务都有名称
注意缩进
2.playbooks:基于yaml语言格式的一个.yaml文件
示例:(注意:千万注意缩进以及对其,特别是-)
#vim test.yaml
- hosts: all
remote_user: root
tasks:
- name: ensure apache status
service:
name: httpd
state: status