目录
自动化任务执行的意义
1.什么是自动化执行任务?
假设我们要在10台Linux服务器上安装一个Nginx服务, 手动是如何操作的?
- 第一步: ssh登录Linux(1,2,3...10)服务器
- 第二步: 输入对应服务器密码
- 第三步: 执行命令yum install nginx
- 第四步: 执行命令systemctl start nginx
- 第五步: 退出登录
- 循环执行前面的操作,直到10台服务器的Nginx服务部署完成。
解决方案:
登录哪些服务器;执行哪些命令;自动化程序
2. 自动化执行的意义
提升运维工作效率, 减少一份工作成本
提高准确度, 手工部署易出错
3. 自动化任务执行的应用
- 应用一: 批量命令执行
- 应用二: 定时任务
- 应用三: 批量程序应用服务安装
- 应用四: 批量配置文件同步
- 应用五: 批量代码部署
Ansible安装与基础
1. 什么是Ansible?
Ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、chef、func、 fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。
- Ansible是基于 paramiko 开发的,并且基于模块化工作,本身没有批量部署的能力。真正具有批量 部署的是Ansible所运行的模块,Ansible只是提供一种框架。Ansible不需要在远程主机上安装 client/agents,因为它们是基于ssh来和远 程主机通讯的。
- Ansible目前已经已经被红帽官方收购,是自动化运维工具中大家认可度最高的,并且上手容易, 学习简单。是每位运维工程师必须掌握的技能之一。
2. Ansible的特点
- Ansible是Python语言实现的一套完整的自动化任务执行模块。
- Ansible的play book模式, 采用yaml配置,对于自动化任务执行一目了然
- 部署简单,只需在主控端部署Ansible环境,被控端无需做任何操作
- 默认使用SSH协议对设备进行管理
- Ansible自动化场景支持丰富(大量常规运维操作模块),实现日常绝大部分操作
- 配置简单、功能强大、扩展性强
- 支持API及自定义模块,可通过Python轻松扩展
- 通过Playbooks来定制强大的配置、状态管理
- 轻量级,无需在客户端安装agent,更新时,只需在操作机上进行一次更新即可
- 提供一个功能强大、操作性强的Web管理界面和REST API接口——AWX平台
3. Ansible的安装
- 方法一: 通过系统的方式: yum和apt-get等
- 方法二: 通过python的方式安装
#通过Python安装
pip3 install ansible -i https://pypi.douban.com/simple
#安装完成后检验版本
ansible --version
4. Ansible的配置文件
需要创建的配置文件有:
mkdir /etc/ansible
cd /etc/ansible
touch ansible.cfg
touch hosts
4.1 Ansible配置文件位置的设置
ansible与我们其他的服务在这一点上有很大不同,Ansible的配置文件查找是从多个地方找的,顺序如下:
- 检查环境变量ANSIBLE_CONFIG指向的路径文件
export ANSIBLE_CONFIG=/etc/ansible/ansible.cfg
- ./ansible.cfg, 检查当前ansible命令所在目录下的ansible.cfg配置文件
- ~/ansible.cfg,检查当前用户家目录下的ansible.cfg配置文件
- /etc/ansible/ansible.cfg,如果前面都没有指定,默认指定的配置文件路径
4.2 Ansible配置文件
ansible 的配置文