自动化运维—Ansible
前言
Ansible是自动化运维的工具,基于Python开发,实现了批量系统配置、批量程序部署、批量运行命令等功能。
Ansible是基于模块工作的,ansible提供一个框架,通过模块实现批量部署。
一、 安装,使用
1 安装Ansible
使用epel的源安装,添加epel源此处不详述。
1 |
|
2 设置**登录
生成SSH公钥**对
1 |
|
拷贝公钥到被管理端的服务器
1 2 |
|
确认可以用**连接到管理端的服务器
3 配置Ansible
定义主机组,可以使用主机名或IP
1 2 3 4 |
|
另外,Ansible的配置文件在 /etc/ansible/ansible.cfg,默认不需要修改。
4 使用Ansible
1. Ping模块
1 |
|
2. 执行命令,command、shell模块
1 2 3 4 |
|
3 .查看配置,setup模块
1 |
|
4 .拷贝文件,copy模块
1 |
|
5 .添加用户,user模块
1 |
|
密码生成方法:
1 2 3 4 |
|
6 .安装软件,yum模块
1 |
|
7. 启动服务,设置开机自启动,service模块
1 |
|
查看
1 2 |
|
8 .支持管道,raw,shell模块
1 |
|
5 其他命令
1 .查看帮助
列出所有已安装模块
1 |
|
查看某模块的简介
1 |
|
2 .ansible-pull
使用pull模式,(默认是push模式)
二、 Playbook文件
Playbook是由一个或多个“play”组成的列表,可以让它们联同起来按事先编排的机制执行
1 |
|
Playbook文件的格式,YAML是一个可读性高的标记语言。
Role可以把playbook分成一个一个模块,使结构更清晰。
1 Role的构造
包括 tasks, defaults, vars, files, templates, mata, handlers 各目录,其中 tasks 是必需的。
2 Role的例子
本例子是最基本的构成,只包括tasks
1. 创建目录 roles/apache2/tasks
1 |
|
2 .创建 tasks/main.yml
1 2 3 4 5 6 7 8 |
|
3 .创建 Playbook (site.yml)
1 2 3 4 5 6 7 |
|
4 .执行
1 |
|
3 官方的playbook例子
https://github.com/ansible/ansible-examples
4 playbook文件加密
ansible-vault 对配置文件(比如playbooks),进行基于密码的加密,防止敏感信息泄露
1. 加密已存在文件
1 |
|
2 .加密并创建文件
1 |
|
加密后的playbook
3 .执行加密后的playbook
1 |
|
4 .解密
1 |
|
三、 后记
Ansible使用简单,不需要客户端,模块化程度高,定制灵活,当管理服务器的数量多的时候,能起到很大的帮助。是一个很好的自动化运维工具。创建了一个测试交流群,如果对软件测试、接口测试、自动化测试、面试经验交流感兴趣可以加测试交流群:829792258,还会有同行一起技术交流