1. Ansible 优点

(1) 易读的语法:Ansible使用playbook作为配置管理脚本,playbook是基于YAML开发的,是一种易于读写的数据格式
(2) 远程主机无须安装任何依赖:被Ansible管理的远程主机,只需要安装SSH和Python即可,无须再安装其他任何Agent程序
(3) 基于推送模式:Ansible在服务器端修改playbook并推送到远程主机执行,这样做的好处是直接由你来控制变更在服务器上发生的时间
(4) 管理小规模集群:Ansible可以轻松扩展至管理成百上千的节点,也有向下收缩规模的能力,只需要编写一个Ansible脚本文件即可
(5) 内置模块:Ansible内置了一系列模块,通过模块,你可以执行像安装软件包 、重启服务或复制配置文件这样的任务

2. Ansible 如何运作

(1) Ansible 是通过 playbook 脚本来进行配置管理的,playbook 中定义要执行的任务
(2) 对于每一个任务,Ansible 都是在所有主机之间并行执行的
(3) 在下一个任务开始之前,Ansible 会等待所有主机都完成上一个任务
(4) Ansible 会按照你指定的顺序来运行任务

3. Ansible 安装

只需要在服务器端安装 Ansible 即可,是基于 sshd 去远程控制客户端主机的

[root@localhost ~]$ yum install -y epel-release
[root@localhost ~]$ yum install -y ansible

4. 使用 Vagrant 创建测试服务器

我们在一台 Linux 服务器上安装 Ansible,作为 Ansible 服务端,使用 Vagrant 创建多台虚拟机,作为 Ansible 客户端

安装 CentOS7 图形界面:https://www.linuxidc.com/Linux/2018-04/152000.htm

安装 Vagrant 流程:https://www.howtoing.com/how-to-install-vagrant-on-centos-7

[root@localhost ~]# mkdir playbooks && cd playbooks          //创建一个专门存储 Ansible playbook 的目录
[root@localhost playbooks]# vagrant init ubuntu/trusty64 //创建一个64位 Ubuntu 虚拟机镜像对应的 Vagrant 配置文件
[root@localhost playbooks]# vagrant up //启动虚拟机,第一次会根据 Vagrant 配置文件去下载镜像文件
[root@localhost playbooks]# vagrant ssh //用于连接到虚拟机
[root@localhost playbooks]# vagrant ssh-config //用于查看SSH连接信息

5. 将测试服务器的信息配置在 Ansible 中

Ansible 只能管理那些它明确了解的服务器,需要在 inventory 文件中指定被管理的服务器的信息

Ansible 默认使用 /etc/ansible/hosts 作为 inventory 文件,不过我们一般不使用它,放在和 playbook 目录一起进行控制

如下信息中,testserver 是主机别名,其他需要明确的信息有主机IP 、主机端口 、主机用户 、连接的密钥文件,这些信息可以通过 vagrant ssh-config 查看

[root@localhost playbooks]# cat hosts    //inventory文件,用于定义被Ansible管理的主机资源
testserver ansible_ssh_host=127.0.0.1 ansible_ssh_port= ansible_ssh_user=vagrant ansible_ssh_private_key_file=/root/playbooks/.vagrant/machines/default/virtualbox/private_key
[root@localhost playbooks]# ansible testserver -i hosts -m ping    //使用ping模块进行测试
testserver | SUCCESS => {
"changed": false,
"ping": "pong"
}

6. 使用 ansible.cfg 来简化配置

在上面的例子中,我们需要在 inventory 文件中明确定义被管理的主机的许多信息,如果有多台被管理主机,那么需要定义的信息更多

因此,我们可以使用 ansible.cfg 文件来简化配置,这个文件用来定义一些默认值,这样我们就不需要对同样的内容输入很多遍,如下

[root@localhost playbooks]# cat ansible.cfg
[defaults]
inventory = hosts //指定inventory文件位置
remote_user = vagrant //指定使用SSH登录的用户
private_key_file = /root/playbooks/.vagrant/machines/default/virtualbox/private_key //指定SSH私钥文件
host_key_checking = False //关闭 host key 检查,这样做的目的是当我们创建一个新的虚拟机时,不需要再编辑 ~/.ssh/known_hosts 文件

有了默认配置,我们就可以简化 inventory 文件的配置了:

[root@localhost playbooks]# cat hosts
testserver ansible_ssh_host=127.0.0.1 ansible_ssh_port=
[root@localhost playbooks]# ansible testserver -i hosts -m ping
testserver | SUCCESS => {
"changed": false,
"ping": "pong"
}

第1章 Ansible 简介的更多相关文章

  1. Windows程序设计(第五版)学习:第二章 Unicode简介

    第二章 Unicode简介 1,Windows通过双字节技术DBCS解决这个问题,代码页定义不同的字符集,称为ANSI字符集,比如日文为CP932,韩文为CP949,繁体中文为CP950,简体中文为C ...

  2. 《深入浅出Node.js》第1章 Node简介

    @by Ruth92(转载请注明出处) 第1章 Node简介 一.Node的起源 高性能Web服务器的要点:事件驱动.非阻塞I/O. 选择JavaScript的原因:高性能.符合事件驱动.没有历史包袱 ...

  3. 第一章 C++简介

    第一章  C++简介 1.1  C++特点 C++融合了3种不同的编程方式:C语言代表的过程性语言,C++在C语言基础上添加的类代表的面向对象语言,C++模板支持的泛型编程. 1.2  C语言及其编程 ...

  4. <算法图解>读书笔记:第1章 算法简介

    阅读书籍:[美]Aditya Bhargava◎著 袁国忠◎译.人民邮电出版社.<算法图解> 第1章 算法简介 1.2 二分查找 一般而言,对于包含n个元素的列表,用二分查找最多需要\(l ...

  5. 《gradle 用户指南中文版》 第1章、简介

    第1章.简介 目录 1.1 关于本用户指南 Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建工具. 这里我们将介绍Gradle,我们认为gradle让java项 ...

  6. 第1章WCF简介(WCF全面解析读书笔记2)

    第1章 WCF简介 面向服务架构(SOA)是近年来备受业界关注的一个主题,它代表了软件架构的一种方向.顺应SOA发展潮流,微软于2006年年底推出了一种新的分布式通信框架Windows Communi ...

  7. python 教程 第一章、 简介

    第一章. 简介 官方介绍: Python是一种简单易学,功能强大的编程语言,它有高效率的高层数据结构,简单而有效地实现面向对象编程.Python简洁的语法和对动态输入的支持,再加上解释性语言的本质,使 ...

  8. ArcGIS for Desktop入门教程_第二章_Desktop简介 - ArcGIS知乎-新一代ArcGIS问答社区

    原文:ArcGIS for Desktop入门教程_第二章_Desktop简介 - ArcGIS知乎-新一代ArcGIS问答社区 1 Desktop简介 1.1 ArcGIS for Desktop ...

  9. 批量搞机(一):ansible简介、ansible安装

    一.ansible简介 Ansible是2013年推出的一款IT自动化和DevOps软件,目前由Redhat已签署Ansible收购协议.其是基于Python研发,糅合了很多老运维工具的优点实现了批量 ...

随机推荐

  1. Ubuntu下允许Root用户的操作 (图形界面登录、su切换……)

    Ubuntu安装后,root用户默认是被锁定了的,不允许登录,也不允许“su”到 root.虽然这样的设置使安全性更高一些,但对于开发者来 说就显得很不方便了.如何让Ubuntu允许root用户直接登 ...

  2. 自然语言交流系统 phxnet团队 创新实训 项目博客 (五)

    3DMax方面所涉及的专业知识:                       (1)一下的关于3DMax中对于人物的设计和操作均需要在对3DMax基础知识熟练掌握的情况下进行的. (2)骨骼架设:首先 ...

  3. Linux 内核版本,Ubuntu版本的查看

    查看内核版本 1)  cat /proc/version [root@a ~]# cat /proc/version Linux version 2.6.18-194.el5 (mockbuild@x ...

  4. List<Map<String, Object>>是什么意思

    List集合中的对象是一个Map对象,而这个Map对象的键是String类型,值是Object类型 List以Map接口对象为列表对象. Map以String为键,以Object为值. List里只能 ...

  5. 实践:C++平台迁移以及如何用C#做C++包装层

    在前面,我们看过OpenTK与MOgre,这二个项目都是C#项目,但是他的实现都是C++.他们简单来说就是一个包装层.常见的包装方式有二种,一种就是我们熟知的显式P/Invoke(DllImport) ...

  6. SAP MM/FI 自动过账实现 OBYC 接口执行

    一. 自动过账原理 在MM模块的许多操作都能实现在FI模块自动过账,如PO收货.发票验证(LIV).工单发料.向生产车间发料等等.不用说,一定需要在IMG中进行配置才可以实现自动处理.但SAP实现的这 ...

  7. 【转】Graphics.DrawCurve的算法

    public static class Spline { [System.Diagnostics.DebuggerDisplay("({X},{Y})")] public part ...

  8. (原)从mp4,flv文件中解析出h264和aac,送解码器解码失败

    转载请注明出处:http://www.cnblogs.com/lihaiping/p/5285166.html 今天在做本地文件解码测试,发现从mp4,flv文件中读出来的帧数据,h264和aac帧直 ...

  9. c#中//注释和///注释的区别 智能注释 显示换行

    ///会被编译,//不会所以使用///会减慢编译的速度(但不会影响执行速度)///会在其它的人调用你的代码时提供智能感知 也是一种注释,但是这种注释主要有两种作用:1.这些注释能够生成一个XML文件. ...

  10. sublime3 docblocker插件定制自己的注释,配置步骤

    DocBlockr很好用,不仅仅可以自动生成注释,还可以手动编辑注释的格式. 安装方法:   Cmd+Shift+P -> Install Package -> docblockr  wi ...