资讯专栏INFORMATION COLUMN

Ansible安装和配置经验分享

IT那活儿 / 2284人阅读
Ansible安装和配置经验分享

点击上方“IT那活儿”,关注后了解更多内容,不管IT什么活儿,干就完了!!!




亲爱滴伙伴们,今天给大家说说Ansible自动化运维工具的经验分享,接下来由我为大家一步步唠唠。








Ansible介绍



Ansible是一个开源配置管理工具,可以使用它来自动化任务,部署应用程序实现IT基础架构。Ansible可以用来自动化日常任务,比如,服务器的初始化配置、安全基线配置、更新和打补丁系统,安装软件包等。

Ansible架构相对比较简单,仅需通过SSH连接客户机执行任务即可。

Ansible的与节点有关的重要术语包括控制节点,受管节点,清单和主机文件:

1)控制节点(Control node):指安装了Ansible的主机,也叫Ansible服务器端,管理机。Ansible控制节点主要用于发布运行任务,执行控制命令。Ansible的程序都安装在控制节点上,控制节点需要安装Python和Ansible所需的各种依赖库。注意:目前Ansible还不能安装在Windows下。

2)受控节点(Managed nodes):也叫客户机,就是想用Ansible执行任务的客户服务器。

3)清单(Inventory):受控节点的列表,就是所有要管理的主机列表。

4)host文件:清单列表通常保存在一个名为host文件中。在host文件中,可以使用IP地址或者主机名来表示具体的管理主机和认证信息,并可以根据主机的用户进行分组。缺省文件:/etc/ansible/hosts,可以通过-i指定自定义的host文件。

5)模块(Modules):模块是Ansible执行特定任务的代码块。比如:添加用户,上传文件和对客户机执行ping操作等。Ansible现在默认自带450多个模块,,Ansible Galaxy公共存储库则包含大约1600个模块。

6)任务(Task):是Ansible客户机上执行的操作。可以使用ad-hoc单行命令执行一个任务。

7)剧本(Playbook:是利用YAML标记语言编写的可重复执行的任务的列表,playbook实现任务的更便捷的读写和贡献。比如,在Github上有大量的Ansible playbooks共享,你要有一双善于发现的眼睛你就能找到大量的宝藏

8)角色(roles):角色是Ansible 1.2版本引入的新特性,用于层次性、结构化地组织playbook。roles能够根据层次型结构自动装载变量文件、tasks以及handlers等。





Ansible工作原理



Ansible可以简化管理员的自动化配置管理和流程控制方式。它利用推送方式对客户系统配置,这样所有的工作都可以在主服务器上完成。

运行Ansible的服务器叫做”管理节点”,通过Ansible进行管理的服务器叫做“受控节点”。

Ansible管理工具的优点为:

1)轻量级,更新时只需要在操作机上进行一次更新即可。

2)采用SSH协议。

3)不需要客户端安装agent。

4)批量任务执行可以写成脚本,并且不需要分发到客户端。

5)使用Python编写,维护简单。

6)支持sudo普通用户命令。

7)去中心化管理。

Ansible的原理拓扑图为:

可以看到Ansible由五部分组成:

1)Ansible :核心。

2)Modules :包括 Ansible 自带的核心模块及自定义模块。

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

4)Playbooks :剧本;定义 Ansible 多任务配置文件,由Ansible 自动执行。

5)host Inventory :定义 Ansible 管理主机的清单。





Ansible安装配置



1. SSH分发

//安装sshpass

#
 yum install sshpass -y

//生成密钥

#
 ssh-keygen -t dsa -f /root/.ssh/id_dsa -N ""

//分发密钥

#
 vim ~/ssh-fenfa.sh

#
 sh ~/ssh-fenfa.sh

2. 管理机器安装部署

// 添加repo

# yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

// yum安装ansilbe

# yum install ansible -y

# rpm -qa ansible

// 检查ansible版本

# ansible --version

3. 添加主机清单

# vim /etc/ansible/hosts

4. 测试ansible

# ansible db -m ping





Ansible常用模块



1. shell模块

了解一个模块的时候可以使用ansible-doc命令,在其后加上-h或者–help直接获取帮助信息,比如现在我们查看shell模块。还有获取主机名和查询系统负载等等。

2. 复制模块

Copy模块的作用是往客户机上备份文件,在使用之前可以ansible-doc查看了解该模块。

其中,src代表需要备份的文件路径,dest代表要备份到的文件路径,owner与group分别代表备份文件的属主与属组,mode代表权限。完成备份之后我们可以在客户机上查看是否备份成功。

3. 用户模块

顾名思义就是帮助我们管理用户的模块,一般可以用来对用户进行创建、删除、修改等操作。

创建用户时我们须要指定用户名与状态,这里name表示指定的用户名,state表示指定用户的状态。

删除用户同样我们也需要指定用户名与状态。

修改密码:

4. yum模块(更新所有包和安装apache)





Ansible工具参数



Ansible主要参数详解:

  • -v,-verbose:打印详细模式。

  • -i PATH,-inventory=PATH:指定host文件路径。

  • -f NUM,-forks=NUM:指定fork开启同步进程的个数,默认是5。

  • -m NAME,-module-namea=NAME:指定module模块,默认为command模块。

  • -a MODULE_ARGS:module模块的参数或者命令。

  • -k,-ask-pass:输入远程被管理端的密码。

  • -sudo:基于sudo执行。

  • -K,-ask-sudo-pass:提示输入sudo密码与sudo一起使用。

  • -u USERNAME:执行执行用户。

  • -C,–check:测试执行过程,不改变真实内容,相当于预演。

  • -T TIMEOUT:执行命令超时事件,默认为10s。

  • –version:查看Ansible软件的版本信息。





文章小结



运维自动化的价值在于,将运维从繁琐的、例行、容易发生人为事故的工作中脱离出来,做更有价值的业务运维和服务运维。所以,从这个角度来看,运维自动化既不是起点,也不是终点。维自动化,终归只是一个高级工具而已。

运维的价值最终是要体现在业务上的:

体现的方式就是运维服务化,所以运维自动化(智能化)最终都要为运维的服务化服务。

如何构建你的自动化系统最终要看你所支撑的业务需要什么样的服务。所以,在做之前一定要弄清楚我们的目标,然后再去实现。


本次分享到此结束,谢谢!




本文作者:吴志辉

本文来源:IT那活儿(上海新炬王翦团队)

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/129562.html

相关文章

  • 数人云工程师手记 | 双剑合璧,分布式部署两步走

    摘要:今天小数给大家带来的是数人云工程师金烨的分享,有关于自动快速部署服务相关组件的一些实践。当与相遇,双剑合璧,一切变得如此简单有趣。通过将服务注册到来做健康检查。 今天小数给大家带来的是数人云工程师金烨的分享,有关于自动快速部署DCOS服务相关组件的一些实践。当Ansible与Docker相遇,双剑合璧,一切变得如此简单有趣。 本次分享将包括以下内容: 云平台部署使用的服务、组件 Do...

    Jonathan Shieber 评论0 收藏0
  • 一些小团队的自动化运维实践经验

    摘要:行业内各巨头的自动化运维架构都各种功能各种酷炫,如下图,让人可望不可及。面对这么多问题,我就想啊,如何在低成本情况下实现自动化运维。自动扩缩容通过配置告警规则,调用相应就可以实现实战以上就是笔者关于自动化运维的一些实践。 行业内各巨头的自动化运维架构都各种功能各种酷炫,如下图,让人可望不可及。现在最终的样子大家都知道了,但问题是如何根据自己团队当前的情况一步步向那个目标演进?笔者所在团队,三...

    princekin 评论0 收藏0
  • 关于Docker Swarm,你可能需要了解更多实践经验

    摘要:虽然可以使用相同的方式部署应用到云端,使用外部负载均衡器,但动态添加或者减少负载均衡节点依旧是痛点。这对使用外部负载均衡器帮助巨大。 数人云今天带来的本篇文章将分享Docker在应用程序生命周期每个阶段中所扮演的角色,以及迁移到Swarm集群时需要考虑的问题。 利用Docker来开发 Docker让工作更轻松。如需要一个部署安装MySQL数据库,或者安装Ghost,又或者Redis数据...

    bitkylin 评论0 收藏0
  • 从Docker 到Jenkins 到Ansible的部署经验

    摘要:从到到的部署经验工作中,除了开发功能,还负责系统的部署工作。我从频繁的部署工作中,逐渐找到了一些偷懒的方法。同时在构建成功后执行我们输入的命令,来达到自动化部署的工作。缺点也是有的,很难保证对方部署的环境是最新的。 从Docker 到Jenkins 到Ansible的部署经验 工作中,除了开发功能,还负责系统的部署工作。我从频繁的部署工作中,逐渐找到了一些偷懒的方法。从传统的Java ...

    beanlam 评论0 收藏0
  • ansible自动化部署(一)

    摘要:自动化部署最近因为工作需要学习了把这几天所学的东西做了个总结,和大家分享一下什么是能干什么是新出现的自动化运维工具,基于开发,集合了众多运维工具的优点,实现了批量系统配置批量程序部署批量运行命令等功能。 ansible自动化部署 最近因为工作需要学习了ansible,把这几天所学的东西做了个总结,和大家分享一下: 1、什么是ansible?ansible能干什么? ansible是新出...

    娣辩孩 评论0 收藏0

发表评论

0条评论

IT那活儿

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<