Ansible介绍

Ansible是一个简单的自动化引擎,可完成配置管理、应用部署、服务编排以及各种IT需求。它是一款使用Python语言开发实现的开源软件,其依赖Jinjia2paramikoPyYAML这几个python库。

Ansible安装部署简单,只需要再主控端部署Ansible环境,被控端无须做任何操作,基于SSH进行配置管理。Ansible作为自动化系统运维的一大利器,在构建整个体系过程中有这举足轻重的地位。其简单易用、易于安装、功能强大、便于分享、内含大量模板等都是它的魅力所在,再加上易封装、接口调用方便,Ansible正在被越来越多的大公司采用。

安装Ansible

Ansible使用Python语言开发,我们可以直接使用pip进行安装,也可以用Linux下的包管理工具(如yum、apt-get)进行安装

pip install ansible   #主控端安装即可
角色 ip 主机名 用户
主控端 192.168.88.1 c1.heboan.com heboan
被控端 192.168.88.2   c2.heboan.com heboan
被控端 192.168.88.3 c3.heboan.com heboan

主控端生成ssh证书,并分发给被控端,使得主控端可以免密连接被控端

[heboan@c1 ~]$ ssh-keygen -t rsa
[heboan@c1 ~]$ ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.88.2
[heboan@c1 ~]$ ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.88.3

使用Ansible操作远程服务器时 ,首先需要确定是操作哪些服务器,然后再确定对这些服务器执行哪些操作。Ansible默认会读取/etc/ansible/hosts文件中配置的服务器列表,例如/etc/ansible/hosts文件内容如下:

[heboan@c1 ~]$ cat /etc/ansible/hosts
[test]
192.168.88.2
192.168.88.3

Ansible中存在一个名为ping的模块,该模块并不是测试服务器的网络连接是否正常,而是尝试建立SSH连接,以便验证用户的SSH配置是否已经正确

[heboan@c1 ~]$ ansible test -m ping
192.168.88.3 | SUCCESS => {
"changed": false,
"ping": "pong"
}
192.168.88.2 | SUCCESS => {
"changed": false,
"ping": "pong"
}

test :代表我们定义的两台服务器

-m:指定了需要操作的模块

ping:s是一个模块的名称

Ansible默认使用当前的用户和默认的22号端口与远程 服务器建立SSH连接,如果需要使用其他用户,或者非默认的SSH端口号,可以在host之后添加用户名或端口号的配置

[heboan@c1 ~]$ cat /etc/ansible/hosts
[test]
192.168.88.2 ansible_user=heboan ansible_port=2202
192.168.88.3 ansible_user=heboan ansible_port=2202

一般情况下,工作环境中的服务器ssh用户和ssh端口都相同,如果有很多远程服务器,每一台服务器都需要配置ansible_user或ansible_port参数,如果依然使用上面的方式配置,会显得非常冗余。Ansible默认使用/etc/ansible/ansible.cfg文件,可以设定一些默认值,这样就不需要对同样的内容输入多次

[heboan@c1 ~]$ cat /etc/ansible/ansible.cfg
[defaults]
remote_port = 2202
remote_user = heboan

第1天:Ansible安装部署的更多相关文章

  1. Ansible安装部署以及常用模块详解

    一.  Ansible 介绍Ansible是一个配置管理系统configuration management system, python 语言是运维人员必须会的语言, ansible 是一个基于py ...

  2. Ansible安装部署

    Ansible安装部署 Ansible是一种集成IT系统的配置管理, 应用部署, 执行特定任务的开源平台. 它基于Python语言实现, 部署只需在主控端部署Ansible环境, 被控端无需安装代理工 ...

  3. Ansible安装部署及常用模块详解

    Ansible命令使用 Ansible语法使用ansible <pattern_goes_here> -m <module_name> -a <arguments> ...

  4. 运维工具Ansible安装部署

    http://blog.51cto.com/liqingbiao/1875921 centos7安装部署ansible https://www.cnblogs.com/bky185392793/p/7 ...

  5. 使用Ansible安装部署nginx+php+mysql之安装mysql(3)

    三.使用Ansible安装mysql 1.mysq.yaml文件 - hosts: clong remote_user: root gather_facts: no tasks: # 安装rpm包 - ...

  6. 使用Ansible安装部署nginx+php+mysql之安装php(2)

    二.使用Ansible安装php 1.php.yaml文件内容 - hosts: clong remote_user: root gather_facts: no tasks: # 安装libseli ...

  7. 使用Ansible安装部署nginx+php+mysql之安装nginx(1)

    使用Ansible安装nginx 1.nginx.yaml文件 --- - hosts: clong remote_user: root gather_facts: no tasks: # 安装epe ...

  8. Ansible安装部署和常用命令,及其主机清单inventory(二)

    1.ansible的安装方式 1.1使用yum源安装 yum install ansible -y 1.2使用rpm包安装 https://dl.fedoraproject.org/pub/epel/ ...

  9. 使用Ansible安装部署nginx+php+mysql之配置iptables防火墙(0)

    前提: 1.已配置好hosts文件且免密码登录 2.需要的yaml文件已上传到主控端 一.使用Ansible配置iptables 1.iptables.yaml文件 --- - hosts: clon ...

随机推荐

  1. 【设计模式】 模式PK:门面模式VS中介者模式

    1.概述 门面模式为复杂的子系统提供一个统一的访问界面,它定义的是一个高层接口,该接口使得子系统更加容易使用,避免外部模块深入到子系统内部而产生与子系统内部细节耦合的问题.中介者模式使用一个中介对象来 ...

  2. Computer(HDU2196+树形dp+树的直径)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2196 题目: 题意:有n台电脑,每台电脑连接其他电脑,第i行(包括第一行的n)连接u,长度为w,问你每 ...

  3. embed标签 阻止点击事件 让父元素处理点击事件

    由于规定页面显示的PDF文件要有固定大小,使得页面风格统一 最开始发现了CSS样式pointer-events 写出如下代码,在360急速浏览器急速模式中访问可在点击PDF控件时可跳转页面 <a ...

  4. Android中自定义属性attr.xml的格式详解

    1. reference:参考某一资源ID.     (1)属性定义:             <declare-styleable name = "名称">      ...

  5. 腻子脚本polyfill

    腻子脚本 具体是指一段可以给老版本浏览器(ie9以前的版本)带来新特性的javascript脚本代码.如轻量级的脚本代码或Modernizr,Modernizr除了能让ie支持html5新元素之外,还 ...

  6. Linux 入门记录:三、Linux 文件基本操作管理

    一.复制文件.目录 使用 cp 命令复制文件或目录: $ cp 源文件(夹)目标文件(夹) 常用参数: -r 递归复制整个目录树 -v 显示复制过程的详细信息 二.移动.重命名文件或目录 通过 mv  ...

  7. 4.FireDAC组件快照 二

    TFDUpdateSQL 生成添加,删除,修改SQL语句 TFDMetaInfoQuery 查询数据源信息 TFDEventAlerter 负责处理数据库事件通知 使用TFDEventAlerter类 ...

  8. javascript反混淆之packed混淆

    function getKey() { var aaaafun = function(p, a, c, k, e, d) { e = function(c) { return (c < a ? ...

  9. git - 使用原理

    对git操作最大的功臣就是.git目录下的HEAD HEAD是什么 HEAD其实是一个类似于指针的东西,只不过这个指针的含义是指向当前的分支,当你再[ git checkout 分支 ] 的时候这个分 ...

  10. CNN中已知input_size、kernel_size、padding、stide计算output公式的理解

    在进行卷积运算和池化的时候,对于输入图像大小为input_size,给定kernel_size.padding.stride,计算得出output_size为: output_size =1+ (in ...