hualinux 进阶 2-1.1:centos8安装ansible(手把手版 注解版)

本文详细介绍Ansible自动化运维工具的安装、配置与基本使用方法,包括Ansible的工作机制、主要命令解析及实战演练,适合运维新手快速上手。

目录

一、实验前准备

二、ansible介绍

2.1 ansible简介

2.2 ansible工作机制

2.3  ansible应用前提:标准体系建设(重要)

2.3.1 标准先行

2.3.2 为什么要做标准化

 三、ansible安装配置及使用说明

3.1 安装ansible(yum)

3.1.1 安装第三方epel源

3.1.2 安装ansible( yum)

3.2 ansible相关说明

3.2.1 ansible的七个命令

3.2.2 ansible命令语法

2.3.3 ansible主要配置文件

3.3 运行第一条命令

3.3.1 指定登陆用户名和密码方式(不推荐)

3.3.2 使用免密码方式

四、机子清单Inventory介绍

附录一、 ansible七个命令

1. ansible(核心命令 常用)

2. ansible-doc(模拟说明 常用)

3. ansible-galaxy

4. ansible-lint

5. ansible-playbook(重要)

6. ansible-pull

7. ansible-vault

附录二、ansible命令参数解释


ansible是运维必须掌握的工具,找运维工作几乎都要求会,在学习ansible之前先学会安装,这样边安装边学会效果更好。

我在入门篇的安装软件都是手工安装的,当你看完我所有入门篇的东西,发现很多其实是重复的,手工安装慢效率低下,又容易出错,为了提交效率一般我们推荐自动化部署工具,如ansible(python写的)、saltStack(python写的)、Puppet(ruby写的)等,它们区别是:

我们一般推荐使用python工具,因为火啊,而且我们做运维的,开发也是用python,更有助于我们对python的理解。

一、实验前准备

         ansible是自动化运维工具,基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。

         通过VMware虚拟机实验熟悉使用ansible

主机名

IP地址(NAT)

IP地址(内网)

描述

vm82

ens33:192.168.128.82

ens34:192.168.3.82

  1. Centos8.2最小化(2内存)
  2. 只安装了一些基础软件,做了快照
  3. yum 安装ansible 目前版本为2.9.11

vm821

ens33:192.168.128.21

ens34:192.168.3.21

  1. Centos8.2最小化(1.5内存)
  2. 只安装了一些基础软件,做了快照
  3. 普通机子,不用安装ansible

vm76 

ens33:192.168.128.76

ens34:192.168.3.76

  1. Centos7.6最小化(1.5内存)
  2. 只安装了一些基础软件,做了快照
  3. 普通机子,不用安装ansible

备注:

  1. 我用的是VMware10虚拟机做的实验,本机内存8G,可以根据你们的情况调整
  2. 这里使用的是双网卡,一个是物理网卡,一个是loopBack网卡
    如果公司内网都做了mac地址绑定,可以使用NAT模式上网。这里使用NAT模拟外网
    内网的IP地址我使用的是LoopBack网卡方便登陆管理,实验都会用它做内网
  3. 内存推荐2G,小的话弄1.5G也行,centos7以上不建议弄1G,很容易出

PS:

centos8安装可以看我的《centos8最小化安装》,centos7安装可以看《centos7最小化安装

centos7和centos8都按上面的教程,关闭了selinux、防火墙、安装第三方源epel源及remi源、安装了基础的软件。

 

二、ansible介绍

2.1 ansible简介

 ansible是个什么东西呢?官方的title是“Ansible is Simple IT Automation”——简单的自动化IT工具。这个工具的目标有这么几项:

  1. 自动化部署APP;
  2. 自动化管理配置项;
  3. 自动化的持续交互;
  4. 自动化的(AWS)云服务管理;

所有的这几个目标从本质上来说都是在一个台或者几台服务器上,执行一系列的命令而已。通俗的说就是批量的在远程服务器上执行命令。当然,最主要的是它是基于 paramiko 开发的。这个paramiko是什么呢?它是一个纯Python实现的ssh协议库。因此fabric和ansible还有一个共同点就是不需要在远程主机上安装client/agents,因为它们是基于ssh来和远程主机通讯的。

ansible通过ssh实现配置管理、应用部署、任务执行等功能,因此,需要事先配置ansible端能基于密钥认证的方式联系各被管理节点。

ansible不像saltStack那样是没有agent端的,轻量级,虽然没有saltStack那样强大,但是因为简单方便入门相对简单,还是有不少企业在使用,还有现在python的流行也是不少运维学习ansible的原因

 

2.2 ansible工作机制

ansible基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。ansible是基于模块工作的,本身没有批量部署的能力。真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架。主要包括:

        (1)、连接插件connection plugins:负责和被监控端实现通信;
        (2)、host inventory:指定操作的主机,是一个配置文件里面定义监控的主机;
        (3)、各种模块核心模块、command模块、自定义模块;
        (4)、借助于插件完成记录日志邮件等功能;
        (5)、playbook:剧本执行多个任务时,非必需可以让节点一次性运行多个任务

下面是ansible的架构图:连接其他主机默认使用ssh协议

由上面的图可以看到 Ansible 的组成由 以下部分组成:

  1. 核心:ansible
  2. 核心模块(Core Modules):这些都是ansible自带的模块 
  3. 扩展模块(Custom Modules):如果核心模块不足以完成某种功能,可以添加扩展模块
  4. 插件(Plugins):完成模块功能的补充
  5. 剧本(Playbooks):
  6. ansible的任务配置文件,将多个任务定义在剧本中,由ansible自动执行
  7. 连接插件(Connectior Plugins):ansible基于连接插件连接到各个主机上,虽然ansible是使用ssh连接到各个主机的,但是它还支持其他的连接方法,所以需要有连接插件
  8. 主机群(Host Inventory):定义ansible管理的主机

 

2.3  ansible应用前提:标准体系建设(重要)

2.3.1 标准先行

自动化的前提是标准先行,标准先行,标准先行,重要的事情说三遍

我们运维工作的开展常常不知从何下手,或者上来就冲着工具和自动化去了,却始终不得章法,工具做了一堆,效率却并没有提升。其实绝大多数情况下,问题和原因就是标准化这个基础工作没做扎实。

 

2.3.2 为什么要做标准化

标准化的过程实际上就是对运维对象的识别和建模过程。形成统一的对象模型后,各方在统一的认识下展开有效协作,然后针对不同的运维对象,再抽取出它们所对应的运维场景,接下来才是运维场景的自动化实现。

这有点像我们学的面向对象编程的思想,其实我们就是需要遵循这样一个思路,我们面对的就是一个个实体和逻辑运维对象。

在标准化的过程中,先识别出各个运维对象,然后我们日常做的所有运维工作,都应该是针对这些对象的运维。如果运维操作脱离了对象,那就没有任何意义。同样,没有理清楚对象,运维自然不得章法。

比如我们说扩容,那就要先确定这里到底是服务器的扩容,还是应用

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值