您的位置:时时app平台注册网站 > 时时app平台注册网站 > Ansible自动化运维工具学习手册时时app平台注册网

Ansible自动化运维工具学习手册时时app平台注册网

2019-12-06 12:32

Ansible

​ 在IT行业,工程师习惯于编写程序来解决所有的问题。当然,在软件发布、应用部署和机器扩容时,工程师也希望借助软件来消灭重复劳动力。因此,各种自动化部署工具应运而生。在机器扩容时,将一台新的服务器配置成一台应用服务器,这中间需要经历很多步骤,包括配置DNS、创建用户、配置防火墙、部署应用、部署监控、自动测试等一系列操作。

​ 最开始的时候,工程师通过手动登陆服务器的方式来部署应用。这样不但费时费力,而且枯燥乏味,海特别容易出错。因此,当服务器的数量增大时,工程师一般会将命令写成脚本,通过SSH到远程服务器执行脚本的方式来简化部署工作。当服务器规模不大、应用也不复杂时,使用脚本半人工的方式进行部署是一种比较简单有效的手段。但是,当服务器规模进一步增大,通过SSH执行脚本的方式将会变的困难。而且,随着应用部署的依赖越来越多,需要使用的脚本也越来越多。如果部署一个应用需要依赖几十个脚本,那么,脚本将会变得无法管理。

​ 在复杂的部署任务中,脚本部署也不是长久之计,我们需要更加强大的自动化工具。运维发展到今天,已经有了各种成熟的自动化部署工具,这些自动化部署工具能够有效解决手动部署和脚本部署的不足之处。在层出不穷的自动化运维工具中,Ansible是一颗冉冉升起的新星。最近几年,越来越多的公司和个人开始了解和使用Ansible。在Ansible出现之前,行业中已经有很多开源配置工具了,其中,使用最广泛、知名度最高的便是Puppet。甚至有一段时间,Puppet是配置管理的代名词。工程师 一提到配置管理、自动化部署,首先想到的就是Puppet。Puppet经过多年的发展,牢牢占据了市场第一的位置。但是,Puppet的功能越是强大,其缺点也越明显。Puppet最大的缺点就是大而全,大而全之后导致功能复杂,甚至可以说过于繁琐。运维自动化工具是用来简化运维工作的,如果工具本身比较复杂,就会增加使用者犯错的概率,也会增加使用和推广的难度。

​ Ansible依靠它的简单易用、无客户端依赖、功能强大等优点,逐渐获得了无数开发者和运维工程师的青睐。Ansible是一个简单的自动化运维管理工具,基于Python语言实现,由Paramiko、PyYAML和Jinja2(模板语言)两个关键模块构成,可用于自动化自动化部署应用、配置、编排taask(持续交付、无宕机更新等)。虽然Ansible相对于其他配置工具来说比较简单。但是,因为配置工具本身的复杂执行,所以会导致所占篇幅较多。

Ansible自动化运维工具学习手册

一.ansible介绍
常用的自动化运维工具

Puppet —基于 Ruby 开发,采用 C/S 架构,扩展性强,基于 SSL,远程命令执行相对较弱
SaltStack —基于 Python 开发,采用 C/S 架构,相对 puppet 更轻量级,配置语法使用 YMAL,使得配置 脚本更简单 Ansible —基于 Pythonparamiko 开发,分布式,无需客户端,轻量级,配置语法使用 YMAL 及 Jinja2 模板语言,更强的远程命令执行操作 其他 DevOps 请参看:
Ansible 是一个简单的自动化运维管理工具,可以用来自动化部署应用、配置、编排 task(持续 交付、无宕机更新等),采用 paramiko 协议库(fabric 也使用这个),通过 SSH 或者 ZeroMQ 等连 接主机,大概每 2 个月发布一个主版

Ansible 工作机制

Ansible 在管理节点将 Ansible 模块通过 SSH 协议(或者 Kerberos、LDAP)推送到被管理端执 行,执行完之后自动删除,可以使用 SVN 等来管理自定义模块及编排

时时app平台注册网站 1时时app平台注册网站 2

 

 

 

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

Ansible:核心引擎

Modules:包括 Ansible 自带的核心模块(core modules)及自定义模块 (custom modules);

                核心模块:ansible模块资源分发到远程节点使其执行特定任务或匹配一个特定的状态。

                自定义模块:如果核心模块不足以完成某种功能,可以添加自定义模块。

Plugins:完成模块功能的补充,包括连接插件、邮件插件等

Playbooks:网上很多翻译为剧本,个人觉得理解为编排更为合理;定义ansible任务的配置文件,可以将多个任务定义在一个剧本中,由ansible自动执行,剧本执行支持多个任务,可以由控制主机运行多个任务,同时对多台远程主机进行管理。

Inventory:定义 Ansible 管理主机的清单

ansible功能特性

  • 应用代码自动化部署。
  • 系统管理配置自动化。
  • 支持持续交付自动化。
  • 支持云计算、大数据平台(如AWS、OpenStack、VMWare等)环境。
  • 轻量级,无需在客户端安装agent,更新时只需在控制机上进行一次更新即可。
  • 批量任务执行可以写成脚本,不用分发到远程就可以执行。
  • 使用Python编写,维护更简单,Ruby语法过于复杂。
  • 支持非root用户管理操作,支持sudo。

使用 Ansible 高效交付 Docker 容器 

使用Ansible批量管理远程服务器 

Ansible安装配置与简单使用 

在 CentOS 7 中安装并使用自动化工具 Ansible 

Ansible和Docker的作用和用法 

Ansible批量搭建LAMP环境

Ansible :一个配置管理和IT自动化工具 


二.安装ansible

安装前准备:

1.因为ansible是基于python的,所以先检查是否有python,如果没有需要安装(注意版本,版本过低,也可能导致安装失败)。

时时app平台注册网站 3

2.安装ansible前需要安装依赖包

yum -y install epel-release

时时app平台注册网站 4

......

ansible安装:

 yum -y install ansible

时时app平台注册网站 5

.......

 安装完成后需要配置机组:

vim /etc/ansible/hosts

时时app平台注册网站 6

这里我的机组名为[ccdoop],以下是我的另外2台机子的配置(本机为:test1:192.168.254.130)

test2 192.168.254.131

test3 192.168.254.132

到这里ansible就安装完成了。

测试:

ansible all -m ping 

时时app平台注册网站 7

结果:成功!

注:由于本机只有一个组[ccdoop],故用all,如果有多个机组,而你只想测试一个组的话可以把all替换为组名,如:

时时app平台注册网站 8

 

  • 1
  • 2
  • 下一页

【内容导航】

第1页:安装

第2页:Nginx安装

一.ansible介绍 常用的自动化运维工具 Puppet 基于 Ruby 开发,采用 C/S 架构,扩展性强,基于 SSL,远程命令执行...

Ansible架构分析

​ Ansible在管理节点将Ansible模块通过SSH协议(或者kerberos,LDAP)推送到被管理端执行,执行完成后自动删除,可以使用SVN等来管理自定义模块及编排。
时时app平台注册网站 9
其中:

  • Ansible:核心
  • Core Modules:Ansible自带的核心模块
  • Custom Modules:自定义模块
  • Plugins:Ansible插件,包括邮件插件、日志插件、连接插件等
  • Playbooks:剧本,Ansible配置、部署、编排语言,定义主机执行的task集合
  • Host Inventory:Ansible管理远程主机和组之间的关系清单,记录主机ssh端口、账号密码等

本文由时时app平台注册网站发布于时时app平台注册网站,转载请注明出处:Ansible自动化运维工具学习手册时时app平台注册网

关键词: