Ansible 是一种常用的自动运维化工具,基于 python 开发,分布式,无需客户端,轻量级,配置语言采用 YAML。
Ansible 的特性:
1. 模块化:调用特定的模块,完成特殊的任务。
2.Paramiko (python 对 ssh 的实现),PyYaml,jinja2 (模块语言) 三个关键模块。
3. 支持自定义模块,可使用任何编程语言写模块。
4. 基于 python 语言实现。
5. 部署简单,基于 python 和 SSH (默认已安装),agentless,无需代理不依赖 KPI (无需 SSL)。
6. 安全,基于 OpenSSH
7. 幂等性:一个任务执行一次和执行 n 遍效果一样,不因重复执行带来意外情况。
8. 支持 playbook 编排任务,YAML 格式,编排任务,支持丰富的数据结构。
9. 较强大的多层解决方案 role。
Ansible 的作用目标:
1. 自动化部署 APP
2. 自动化管理配置项
3. 自动化的持续交付
4. 自动化的云服务管理
Ansible 的架构:
Ansible 的工作原理:
Ansible 命令执行来源:
1> USER,普通用户,即 SYSTEM ADMINISTRATOR
2> CMDB(配置管理数据库) API 调用
3> PUBLIC/PRIVATE CLOUD API 调用 (公有私有云的 API 接口调用)
4> USER-> Ansible Playbook -> Ansibile
利用 ansible 实现管理的方式:
1> Ad-Hoc 即 ansible 单条命令,主要用于临时命令使用场景
2> Ansible-playbook 主要用于长期规划好的,大型项目的场景,需要有前期的规划过程
Ansible-playbook(剧本)执行过程
将已有编排好的任务集写入 Ansible-Playbook
通过 ansible-playbook 命令分拆任务集至逐条 ansible 命令,按预定规则逐条执行
Ansible 主要操作对象
HOSTS 主机
NETWORKING 网络设备
注意事项:
执行 ansible 的主机一般称为主控端,中控,master 或堡垒机
主控端 Python 版本需要 2.6 或以上
被控端 Python 版本小于 2.4 需要安装 python-simplejson
被控端如开启 SELinux 需要安装 libselinux-python
windows 不能做为主控端 ansible 不是服务,不会一直启动,只是需要的时候启动
一:Ansible 的安装
yum install -y epel-release
安装epel源,建议使用下方阿里YUM
rm -rf /etc/yum.repos.d/*
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum install -y ansible
检测部署是否完成
rpm -ql ansible 列出所有文件
rpm -qc ansible 查看配置文件
ansible --help 查看ansible帮助
ansible-doc -l 看所有模块(A10,华为,docker,EC2,aws等等广大厂商设备)
ansible-doc -s yum
看yum模块,了解其功能
install (`present' or `installed', `latest'), or remove (`absent' or `removed')
yum list
Package name
enablerepo
标签:python,简介,ansible,repo,Ansible,yum,模块
From: https://www.cnblogs.com/Jqazc/p/16731771.html