Ansible是一个开源的,功能强大的自动化软件,用于配置,管理和仅仅通过使用SSH部署没有任何停机时间节点上的软件应用程序。 今天,大多数IT自动化工具作为远程主机中的代理运行,但Ansible仅需要SSH连接和Python(2.4或更高版本)安装在远程节点上执行操作。
在Linux中安装Ansible
Ansible如何工作?
有很多类似的自动化工具,如Puppet,Capistrano,Chef,Salt,Space Walk等,但Ansible分为两种类型的服务器:控制机器和节点。
控制机器,其中安装了Ansible,节点由此控制机器通过SSH管理。 节点的位置通过控制机器的库存来指定。
控制机器(Ansible)使用SSH协议将模块部署到节点,并且这些模块临时存储在远程节点上,并通过标准输出上的JSON连接与Ansible机器进行通信。
Ansible是无代理的,这意味着不需要在远程节点上安装任何代理,所以这意味着当没有任何后台守护程序或程序正在为Ansible执行时,当它不管理任何节点。
Ansible可以通过SSH连接从单个系统处理100个节点,整个操作可以通过一个单独的命令“ansible”来处理和执行。 但是,在某些情况下,您需要为部署执行多个命令,在这里我们可以构建剧本。
Playbooks是一组可以执行多个任务的命令,每个Playbook都是YAML文件格式。
什么是使用Ansible
Ansible可以在IT基础设施被用于管理和部署软件应用到远程节点。 例如,假设您需要通过单个命令将单个软件或多个软件部署到100个节点,这里使用Ansible可以在Ansible的帮助下,您可以使用一个命令将多个应用程序部署到许多节点,但你必须有一些编程知识来理解ansible脚本。
我们已经编制了Ansible,标题“ 为你的IT基础架构与IT Ansible自动化工具的部署准备 ”系列,通过部分1-4和涵盖以下主题。
在本文中,我们将向您展示如何在RHEL / CentOS 7/6,Fedora 21-19,Ubuntu 14.10-13.04和Debian 7/6系统上安装“Ansible”,并且我们将介绍如何管理服务器通过安装软件包,应用更新等等从基本到专业。
先决条件
- 操作系统 :RHEL / CentOS的/ Fedora和Ubuntu /于Debian / Linux Mint的
- Jinja2的 :为Python现代,快速,易于使用的独立的模板引擎。
- PyYAML:一个YAML分析器和发射器为Python编程语言。
- parmiko:一个原生的Python SSHv2的通道库。
- httplib2的 :一个全面的HTTP客户端库。
- sshpass:非交互的SSH密码认证。
我的环境设置
控制机 - Ansible
Operating System : Linux Mint 17.1 Rebecca IP Address : 192.168.0.254 Host-name : youcl.instrcutor.com User : youcl
远程节点
Node 1: 192.168.0.112 Node 2: 192.168.0.113 Node 3: 192.168.0.114
第1步:安装控制机 - Ansible
1.在安装“Ansible”在服务器上,让我们先核实像主机名和IP地址的服务器的详细信息。 以root用户身份登录到服务器,并执行以下命令以确认我们将要用于此设置的系统设置。
# sudo ifconfig | grep inet
验证系统细节
2.一旦你确认你的系统设置,它的时间在系统上安装“Ansible”软件。
在Ubuntu / Debian / Linux Mint
这里我们将在系统上使用官方Ansible PPA存储库,只需运行以下命令添加存储库。
$ sudo apt-add-repository ppa:ansible/ansible -y $ sudo apt-get update && sudo apt-get install ansible -y
添加Ansible PPA
在Ubuntu中安装Ansible
在RHEL / CentOS / Fedora上
遗憾的是,没有针对基于RedHat的克隆的官方Ansible仓库,但是我们可以通过在RHEL / CentOS 6,7下启用epel仓库并且当前支持Fedora发行版来安装Ansible。
Fedora用户可以直接通过默认存储库安装Ansible,但如果你使用RHEL / CentOS的6,7,您必须启用EPEL回购 。
配置epel存储库后,您可以使用以下命令安装Ansible。
$ sudo yum install ansible -y
安装成功后,可以通过执行以下命令验证版本。
# ansible --version
验证Ansible版本
第2步:准备SSH密钥到远程主机
4.要执行从本地主机的任何部署或管理远程主机首先我们需要创建和SSH密钥复制到远程主机。 在每一个远程主机会有一个用户帐户youcl(在您的情况可能会有所不同的用户)。
首先,我们使用以下命令创建SSH密钥,并将密钥复制到远程主机。
# ssh-keygen -t rsa -b 4096 -C "admin@youcllocal.com"
创建SSH密钥
5.成功创建SSH密钥之后,现在复制创建的关键,所有的三个远程服务器。
# ssh-copy-id youcl@192.168.0.112 # ssh-copy-id youcl@192.168.0.113 # ssh-copy-id youcl@192.168.0.114
复制SSH密钥远程服务器
复制SSH密钥第二个远程主机
6.复制所有SSH密钥到远程主机后,现在所有远程主机上执行SSH密钥认证检查认证是否工作或没有。
$ ssh youcl@192.168.0.112 $ ssh youcl@192.168.0.113 $ ssh youcl@192.168.0.114
SSH密钥认证