Jenkins+Ansible的学习总结
1. Ansible介绍
- Ansible的基本概括与作用
ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,
实现了批量系统配置、批量程序部署、批量运行命令等功能。ansible是基于模块工作的,本身没有批量部署的能力。真正具有批量部署的是
ansible所运行的模块,ansible只是提供一种框架。主要包括:
(1)、连接插件connection plugins:负责和被监控端实现通信;
(2)、host inventory:指定操作的主机,是一个配置文件里面定义监控的主机;
(3)、各种模块核心模块、command模块、自定义模块;
(4)、借助于插件完成记录日志邮件等功能;
(5)、playbook:剧本执行多个任务时,非必需可以让节点一次性运行多个任务。 - Ansible安装前的准备工作
- 发行版:RHEL/CentOS/Debian/Ubuntu Linux
- Jinja2:Python 的一个对设计师友好的现代模板语言
- PyYAML:Python 的一个 YAML 编码/反编码函数库
- paramiko:纯 Python 编写的 SSHv2 协议函数库 (译者注:原文对函数库名有拼写错误)
- httplib2:一个功能全面的 HTTP 客户端函数库
- Ansible的工作原理
Ansible 工具并不使用守护进程,它也不需要任何额外的自定义安全架构,因此它的部署可以说是十分容易。我们需要的全部东西便是 SSH 客户端和服务器了。
其中:
- 192.168.1.100 - 在你本地的工作站或服务器上安装 Ansible。
- 文件服务器1到代理服务器3 - 使用 192.168.1.100 和 Ansible 来自动管理所有的服务器。
- SSH - 在 192.168.1.100 和本地/远程的服务器之间设置 SSH 密钥。
- Ansible安装教程
- 在基于 RHEL/CentOS Linux 的系统中安装 ansible
- 在基于 Debian/Ubuntu Linux 的系统中安装 ansible
- 使用 pip 安装 ansible
- ansible 的 hosts 文件包括了一系列它能操作的主机
- 简单的ping命令测试
- 在基于 RHEL/CentOS Linux 的系统中安装 ansible
设置 SSH 公钥认证
创建和配置 SSH 公钥认证
把它放到远程主机上应该的位置