ansible功能
批量执行远程命令,可以对远程的多台主机同时进行命令的执行
批量安装和配置软件服务,可以对远程的多台主机进行自动化的方式配置和管理各种服务
编排高级的企业级复杂的IT架构任务, Ansible的Playbook和role可以轻松实现大型的IT复杂架构
提供自动化运维工具的开发API, 有很多运维工具,如jumpserver(堡垒机)就是基于 ansible 实现自动化管理功能
ansible特性
- 模块化:调用特定的模块完成特定任务,支持自定义模块,可使用任何编程语言写模块c账号,软件等)
- Paramiko(python对ssh的实现),PyYAML,Jinja2(模板语言)三个关键模块
- 基于Python语言实现
- 部署简单,基于python和SSH(默认已安装),agentless,无需代理不依赖PKI(无需ssl)
- 安全,基于OpenSSH
- 幂等性:一个任务执行1遍和执行n遍效果一样,不因重复执行带来意外情况,此特性非绝对
- 支持playbook编排任务,YAML格式,编排任务,支持丰富的数据结构 剧本演员要按照 系统按照你规定的方式去执行命令
- 较强大的多层解决方案 role
ansible组成
ansible安装
1.编译安装
yum -y install python-jinja2 PyYAML python-paramiko python-babel python-crypto
wget https://releases.ansible.com/ansible/ansible-1.5.4.tar.gz
tar xf ansible-1.5.4.tar.gz
cd ansible-1.5.4
python setup.py build
python setup.py install
mkdir /etc/ansible
cp -r examples/* /etc/ansible
2.yum源安装
[root@node1 yum.repos.d]#vim CentOS-Base.repo
#加入 epel源
[epel]
name=gn
baseurl=https://mirrors.aliyun.com/epel/$releasever/x86_64
https://mirrors.cloud.tencent.com/epel/$releasever/x86_64
https://mirrors.huaweicloud.com/epel/$releasever/x86_64
https://mirrors.tuna.tsinghua.edu.cn/epel/$releasever/x86_64
gpgcheck=0
[root@node1 yum.repos.d]#yum info ansible
已加载插件:fastestmirror, langpacks
base | 3.6 kB 00:00:00
epeel | 4.7 kB 00:00:00
extras | 2.9 kB 00:00:00
updates | 2.9 kB 00:00:00
(1/3): epeel/7/group_gz | 96 kB 00:00:00
(2/3): epeel/7/updateinfo | 1.0 MB 00:00:00
(3/3): epeel/7/primary_db | 7.0 MB 00:00:04
Loading mirror speeds from cached hostfile
* base: mirrors.163.com
* epeel: mirrors.aliyun.com
* extras: mirrors.163.com
* updates: mirrors.163.com
可安装的软件包
名称 :ansible
架构 :noarch
版本 :2.9.25
发布 :1.el7
大小 :17 M
源 :epeel/7
简介 : SSH-based configuration management, deployment, and task execution system
网址 :http://ansible.com
协议 : GPLv3+
描述 : Ansible is a radically simple model-driven configuration management,
: multi-node deployment, and remote task execution system. Ansible works
: over SSH and does not require any software or daemons to be installed
: on remote nodes. Extension modules can be written in any language and
: are transferred to managed machines automatically.
[root@node1 yum.repos.d]#yum install ansible -y
......................省略..................................
已安装:
ansible.noarch 0:2.9.25-1.el7
作为依赖被安装:
PyYAML.x86_64 0:3.10-11.el7 libyaml.x86_64 0:0.1.4-11.el7_0
python-babel.noarch 0:0.9.6-8.el7 python-jinja2.noarch 0:2.7.2-4.el7
python-markupsafe.x86_64 0:0.11-10.el7 python-paramiko.noarch 0:2.1.1-9.el7
python2-httplib2.noarch 0:0.18.1-3.el7 python2-jmespath.noarch 0:0.9.4-2.el7
完毕!
3.yum安装
yum install epel-release.noarch -y
yum install ansible -y
这边不需要安装客户端,因为ansible服务端通过ssh协议,将py脚本传到客户端,然后客户端通过此脚本协议去操作!!!!
主配置文件里面的内容:
清单文件:
ansible的主要功用在于批量主机操作,为了便捷地使用其中的部分主机,可以在inventory 主机清单文件中将其分组组织
ansible用法
ansible --version
ansible -C 是检查脚本错误
ansible -f 是指定并发处理的数量
举例说明: 在做ansible之前,要做ssh