http://docs.ansible.com/ansible/

https://galaxy.ansible.com/

Ansible是一个IT自动化工具。 它可以配置系统,部署软件,并编排更先进的IT任务,如持续部署或零停机滚动更新。

Ansible的主要目标是简单易用。 它还强调了安全性和可靠性,具有最少的移动部件,用OpenSSH来传输(使用加速socket模式和pull模式作为替代方案)

是一种针对人们的可审计性设计的语言 - 甚至这些人都不熟悉项目。

我们认为简单性与各种规模的环境相关,因此我们为所有类型的繁忙用户设计:开发人员,系统管理员,发布工程师,IT经理以及两者之间的所有人员。 可适用于管理所有环境,从具有少量实例的小型设置到具有数千个实例的企业环境。

可以无代理的方式管理机器。 从来没有一个问题,如何升级远程守护程序或无法管理系统的问题,因为守护程序被卸载。 由于OpenSSH是同行评议的开源组件之一,安全性大大降低。 可解密是分散的 - 它依赖于您现有的操作系​​统凭据来控制对远程机器的访问。 如果需要,Ansible可以轻松连接到Kerberos,LDAP和其他集中式身份验证管理系统。

源代码:https://github.com/ansible/ansible/

安装

安装扩展源  http://fedoraproject.org/wiki/EPEL

yum install ansible

我们首先显示的不是“可配置”的强大的配置/部署/编排功能。 这些功能是由单独的部分所涵盖的playbooks来处理的。

Remote Connection Information

在开始之前,了解Ansible如何通过SSH与远程机器通信非常重要。

默认情况下,Ansense 1.3及更高版本将尽可能使用本机OpenSSH进行远程通信。 这启用了ControlPersist(性能特征),Kerberos以及~/.ssh/config选项,例如Jump Host设置。 但是,当使用Enterprise Linux 6操作系统作为控制机器(Red Hat Enterprise Linux和衍生产品如CentOS)时,OpenSSH版本可能太旧,无法支持ControlPersist。 在这些操作系统上,Ansible将会使用一个名为“paramiko”的OpenSSH的高质量Python实现。 如果您希望使用Kerberized SSH等功能,请考虑使用Fedora,OS X或Ubuntu作为控制台,直到您的平台可以使用较新版本的OpenSSH,或者在Ansible中加入“加速模式”。 见加速模式

在最新版本中,包括Ansible 1.2版本,默认是paramiko。 必须使用-c ssh选项或配置文件中设置本地SSH。

偶尔会遇到不支持SFTP的设备。 这是罕见的,但如果发生,您可以在配置文件中切换到SCP模式。

虽然这可能是常识,但值得分享:任何管理系统受益于在被管理的机器附近运行。 如果您在云中运行可执行文件,请考虑从云内的计算机运行它。 在大多数情况下,这将比在互联网上更好。

作为高级主题,Ansible不仅需要通过SSH远程连接。 运输是可插拔的,并且有用于在本地管理某些东西以及管理chroot,lxc和jail容器的选项。 一种叫做“ansible-pull”的模式也可以通过预定的git检查来反转系统并通过系统“电话回家”来从中央存储库中提取配置指令。

Your first commands

现在你已经安装了Ansible,现在该开始一些基础了。

编辑(或创建) /etc/ansible/hosts并将一个或多个远程系统放在其中。 您的公共SSH密钥应位于这些系统上的authorized_keys中:

192.0.2.50
aserver.example.org
bserver.example.org

这是一个inventory文件,这里还有更详细的说明: inventory

我们假设您正在使用SSH密钥进行身份验证。 要设置SSH代理以避免重新输入密码,您可以执行以下操作:

  $ ssh-agent bash
$ ssh-add〜/ .ssh / id_rsa

(根据您的设置,您可能希望使用Ansible的 - --private-key选项来指定pem文件)

现在ping所有节点:

 $ ansible all -m ping

可能会尝试使用您当前的用户名远程连接到计算机,就像SSH一样。 要覆盖远程用户名,只需使用'-u'参数即可。

如果你想访问sudo模式,还有标志:

# as bruce
$ ansible all -m ping -u bruce
# as bruce, sudoing to root
$ ansible all -m ping -u bruce --sudo
# as bruce, sudoing to batman
$ ansible all -m ping -u bruce --sudo --sudo-user batman # With latest version of ansible `sudo` is deprecated so use become
# as bruce, sudoing to root
$ ansible all -m ping -u bruce -b
# as bruce, sudoing to batman
$ ansible all -m ping -u bruce -b --become-user batman

(如果您想要使用sudo替换,则可以在Ansible的配置文件中更改sudo实现。传递给sudo(如-H)的标志也可以设置在那里。)

恭喜! 您已经使用Ansible联系了您的节点。 现在很快就要到:阅读关于Introduction To Ad-Hoc Commands更多的真实案例,探索您可以对不同的模块做些什么,并了解可用的Playbook语言。 可Ansible不仅仅是运行命令,还具有强大的配置管理和部署功能。 还有更多的探索,但你已经有一个完全工作的基础设施!

[root@mhc ~]# ansible all -a "/bin/echo hello"
109.105.4.65 | SUCCESS | rc=0 >>
hello

提示

运行命令时,可以使用“localhost”或“127.0.0.1”作为服务器名称来指定本地服务器。

例:

  $ ansible localhost -m ping -e'ansible_python_interpreter =“/ usr / bin / env python”'

您可以通过将其添加到清单文件中来明确指定localhost:

 localhost ansible_connection = local ansible_python_interpreter =“/ usr / bin / env python”

主机密钥检查

可选1.2.1及更高版本默认启用主机密钥检查。

如果主机被重新安装,并且在'known_hosts'中有一个不同的密钥,这将导致错误消息,直到更正。 如果一个主机不是最初在'known_hosts',这将导致提示确认密钥,这将导致交互式体验,如果使用Ansible,从cron。 你可能不想要这个。

如果您了解这些含义并希望禁用此行为,可以通过编辑/etc/ansible/ansible.cfg~/.ansible.cfg

  [ 默认值 ]
host_key_checking = False

或者,这可以由环境变量设置:

  $ export ANSIBLE_HOST_KEY_CHECKING = False

另请注意,paramiko模式的主机密钥检查速度相当慢,因此在使用此功能时也建议切换到“ssh”。

Ansible将在远程系统日志的远程系统上记录有关模块参数的一些信息,除非任务或播放标有“no_log:True”属性。 这将在后面解释。

要在控制机器上启用基本日志记录,请参阅配置文件文档并设置“log_path”配置文件设置。 企业用户也可能对安全塔感兴趣。 Tower提供了一个非常强大的数据库日志记录功能,可以根据主机,项目和特定库存查看历史记录,并以图形方式和REST API进行探索。

Ansible介绍/安装/入门的更多相关文章

  1. Ansible 介绍和安装

    目录 Ansible 介绍 环境准备 Ansible安装 配置秘钥管理 配置Inventory文件 简单测试连通性 Ansible 介绍 运维工具分类: agent: puppet, func 这类都 ...

  2. Linux centosVMware 自动化运维Ansible介绍、Ansible安装、远程执行命令、拷贝文件或者目录、远程执行脚本、管理任务计划、安装rpm包/管理服务、 playbook的使用、 playbook中的循环、 playbook中的条件判断、 playbook中的handlers、playbook实战-nginx安装、管理配置文件

    一.Ansible介绍 不需要安装客户端,通过sshd去通信 基于模块工作,模块可以由任何语言开发 不仅支持命令行使用模块,也支持编写yaml格式的playbook,易于编写和阅读 安装十分简单,ce ...

  3. 自动化运维工具之 Ansible 介绍及安装使用

    一.初识Ansible 介绍: Absible 使用 模块(Modules)来定义配置任务.模块可以用标准脚本语言(Python,Bash,Ruby,等等)编写,这是一个很好的做法,使每个模块幂等.A ...

  4. 自动化运维工具——ansible安装入门(一)

    一.简介 现如今有很多运维自动化的工具,如:Ansible.Puppet.saltStack.Fabric.chef.Cfengine 1. Ansible介绍 Ansible 是由 Cobbler与 ...

  5. Redis介绍及入门安装及使用

    Redis介绍及入门安装及使用 什么是Redis Redis is an open source (BSD licensed), in-memory data structure store, use ...

  6. ansible介绍、安装与配置

    一.ansible简介 (1)简介: Ansible是近年越来越火的一款自动化运维工具,其主要的功能是帮助运维实现IT工作的自动化,降低人为操作失误.提高业务自动化率,常用于软件部署.配置自动化.管理 ...

  7. 自动化运维工具Ansible介绍

    一个由 Python 编写的强大的配置管理解决方案.尽管市面上已经有很多可供选择的配置管理解决方案,但他们各有优劣,而 ansible 的特点就在于它的简洁. 让 ansible 在主流的配置管理系统 ...

  8. 一、Ansible基础之入门篇

    目录 1. Ansible基础 1.1 介绍 1.2 工作原理 1.3 如何安装 1.3.1 先决条件 1.3.2 安装Ansible 1.4 管理节点与被管理节点建立SSH信任关系 1.5 快速入门 ...

  9. webpack 介绍 & 安装 & 常用命令

    webpack 介绍 & 安装 & 常用命令 webpack系列目录 webpack 系列 一:模块系统的演进 webpack 系列 二:webpack 介绍&安装 webpa ...

随机推荐

  1. ASP.NET网站权限设计实现(三)——套用JQuery EasyUI列表显示数据、分页、查询

    一.说明: JQuery EasyUI下载地址:http://jquery-easyui.wikidot.com/download,最新版本1.2.2. 首先预览一下界面: 本例实现的功能: 1.多标 ...

  2. jquery select radio

    Query获取Select选择的Text和Value: 语法解释: 1. $("#select_id").change(function(){//code...});   //为S ...

  3. php 非常简单的导入sql文件

    在网上找了很多,都是写了一个类 做了各种处理.还真是累哦 当然之前也做了各种尝试 source 客户端命令 mysql_query()是不支持的 load_file  在where 之后执行可以,但是 ...

  4. Linux下的一些名词解释

    libffi (以下E文摘自http://www.sourceware.org/libffi/) A Portable Foreign Function Interface Library. Comp ...

  5. airtest IDE问题汇总

    FAQ 1.同一个脚本,使用IDE可以运行,使用命令行运行报错 原因:曾经开启过anyproxy代理,添加过HTTP_PROXY环境变量,将其取消即可 unset HTTP_PROXY https:/ ...

  6. ssh的应用和vnc连接桌面

    什么是ssh? SSH是一种网络协议,用于计算机之间的加密登录.如果一个用户从本地计算机,使用SSH协议登录另一台远程计算机,我们就可以认为,这种登录是安全的,即使被中途截获,密码也不会泄露.SSH之 ...

  7. node.js入门基础

    内容: 1.node.js介绍 2.node.js内置常用模块 3.node.js数据交互 一.node.js介绍 (1)node.js特点 与其他语言相比,有以下优点: 对象.语法和JavaScri ...

  8. 异步请求fetch之初体验

    更好阅读体验可移步我的博客:Blog 导读 传递信息到服务器,从服务器获取信息,是前端发展的重中之重,尤其是现在前后端分离的大前提下,前后端的数据交互是前端的必修科目了.从很久之前到现在,ajax都是 ...

  9. 解决QT出现XXXX.dll不能加载问题

    第一步:下载相关动态链接文件(这里以ig4icd32.dll为例子) 下载地址:ig4icd32.dll文件 第二步:把下载的文件放在两个地方,记住!一定得放在两个地方,我试了少一个都不行! C:\W ...

  10. 查看虚拟机CENTOS7 的 IP 地址和命令

    用于生产环境下  安装CENTOS7 太费时间, 研究阶段 放在虚拟机里面  是最好的选择: 但是安装完毕后 就出现问题    无法使用IFCONFIG : 毕竟 内核不一样 首先我们登录操作系统 用 ...