5分钟熟悉Ansible集群运维工具

5分钟熟悉Ansible集群运维工具

【写在最前】我们在平时的编程学习中,或多或少,或早或晚,都要接触到linux服务器;当你工作中接触的服务器比较多(或者你致力于成为一名合格的linux集群运维人员),那么ansible就是你必须要掌握的维护工具!本文致力于成为(或许已经是)全网最简介的ansible工具教程,让我们花5分钟时间搞懂ansible运维工具,相信聪明的你,看完一定会有收获!

【正文开始】

为什么要用Ansible?

假设你有100台服务器,需要先安装同样的业务软件,再进行相似的配置文件修改,如果靠人工每台挨个去操作,不仅效率低下,而且极易出错。

Ansible,就是为Unix/Linux集群运维而生!

什么是Ansible?Ansible是一个集群运维管理工具,这是一款入门非常简单但是功能却极其强大的软件,仅靠SSH就能正常运行各种定制化任务。

跟普通的bash脚本相比,Ansilble有一个非常重要的特点,就是能保证任务操作的“幂等性”(可以重复执行任务,并且执行结果保持不变)

# 准备工作(制作SSH免密登录环境)

假设: 想通过192.168.1.2登录 1.3,那么在1.2上执行如下两条命令:ssh-keygen ssh-copy-id xxx@192.168.1.3注1:第1条命令一路回车即可在本地生成密钥对(在本地/home/xxx/.ssh/下生成两个文件:id_isa.pub 和 id_rsa)注2:第2条命令是将本地公钥发送到1.3上(需要输入2遍xxx用户的密码)

# 安装 ansible

sudo yum -y install ansible

注:安装后会自动生成 /etc/ansible 目录(内含 ansible.cfg配置文件)

# 配置(管理)服务器节点ansible.cfg中第一行配置内容为:#inventory = /etc/ansible/hosts这个 inventory 表示是服务器节点配置文件地址(默认为/etc/ansible/hosts)

当然,你也可以在具体的ansible命令中通过 -i 参数显式指定其他配置文件

hosts配置文件内容举例:

[group1]192.168.1.3

192.168.1.4

192.168.1.5

注:这里的group1表示服务器群组的名字,你可以随便定义

# ansible基本用法:

需求举例:在远端N台服务器上同时安装nginx软件实现命令:

ansible -i /etc/ansible/hosts group1 -b –become-user=root -m shell -a ‘yum -y install nginx’

参数释义:-i: 指定host服务器配置清单文件的路径(默认是在/etc/ansible/hosts,可选项)-b: become“成为”,即切换成root用户去执行命令-m: 指定module模块名称,比如 ping ,copy 等-a: 用于将参数传递给定义的模块m

另一个例子:

ansible group1 -m ping

可借助ping模块实现group1群组所有服务器的网路连通性检测。

# ansible进阶用法:

1)保持操作幂等

联想上面的基本语法:

ansible group1 -m shell -a ‘yum -y install nginx’

这种风格有一个缺点:不能保证操作幂等性。

我们来改进一下:

ansible group1 -m yum -a ‘name=nginx state=installed’

执行结果为:

127.0.0.1 | success >> {“changed”: false}

我们看到结果中有: changed:false 表示远端服务器已经安装过nginx了,不会再重复安装

2)使用 playbook剧本、task任务、handler处理程序

playbook剧本可以支持运行多个task任务,并提供一些更高级的功能。

handlers处理程序与task任务基本相同,但只有当另一个任务调用它时才会运行(例如在服务安装成功后,再启动该服务)

在ansible中,剧本相关的配置都使用Yaml文件定义(必须使用空格缩进,不允许使用tab键缩进,故建议将你的IDE工具的tab按键输出替换成4个空格)。 我们继续以安装nginx并启动nginx为例进行讲解: 定义剧本:

nginx.yml 内容如下:

– hosts: group1become: yesbecome_user: roottasks:- name: “安装nginx”yum:pkg: nginxstate: installedwhen: successnotify:- Start Nginx handlers:- name: Start Nginxservice:name: nginxstate: started

运行剧本:

$ ansible-playbook nginx.yml

此时,hosts集群配置文件中的group1群组下的3台服务器上的nginx软件,就已经全部装好啦。

【全文完】——————————–十年技术沉淀,只做原创文章;及时关注作者,成就大牛之路!如果您对文章内容有不同意见或独到见解,欢迎大家在评论区留言讨论,作者也会第一时间进行互动回复。

郑重声明:本文内容及图片均整理自互联网,不代表本站立场,版权归原作者所有,如有侵权请联系管理员(admin#wlmqw.com)删除。
(0)
用户投稿
上一篇 2022年6月20日
下一篇 2022年6月20日

相关推荐

  • 夏天听歌必备!南卡Runner Pro 3耳机开箱

    窗外的麻雀在电线杆上多嘴,你说这一句很有夏天的感觉,北京的夏天从5月持续到了现在,不出意外的话要到10月才能结束,杰伦刚出新歌那几天我还戴着头戴式耳机,简直就是酷刑,一边听着歌,一…

    2022年8月9日
  • 我科学家建立并命名“西湾生物群”

    我科学家建立并命名“西湾生物群” 揭示迄今最古老昆虫婚飞和资源脉冲效应 光明日报南京6月4日电(记者苏雁通讯员姬尊雨)近期,中国科学院南京地质古生物研究所(以下简称“中科院南古所”…

    2022年8月16日
  • 业务数据治理体系化思考与实践

    美团住宿数据治理团队从事数据治理工作多年,从最初的被动、单点治理,发展到后来的主动、专项治理,再发展到现在的体系化、自动化治理。一路走来,他们不断进行积累和沉淀,也在持续思考与实践…

    2022年6月17日
  • iPad Air 5体验:也许是目前最值得购买的iPad

    也许是受疫情影响,最近平板电脑市场突然火了。各大国产手机厂商争先恐后发布了自家平板产品,并且都给自家产品打上了“生产力”的标签。之前我也购买过某品牌的安卓平板,不过安卓平板的普遍做…

    2022年7月19日
  • 手机参数中PWM、PPI、AIS、OIS和AMOLED都是什么意思?看完涨知识

    很多人在购买手机的时候,通常会被一些手机参数专有名字忽悠住,不知道这些到底是什么意思?今天,我们就来揭秘几个常见的手机参数英文符号。希望对新手朋友有用。 1.像素密度单位ppi 像…

    2022年6月17日
  • Kotlin进阶系列-函数类型及函数字面值

    1. 函数类型 在Kotlin中,函数是一等公民(first class),这意味着函数可以被存储在变量或者数据结构中,它是有类型的。Kotlin使用函数类型来描述一个函数的具体类…

    2022年7月8日
  • 狼队小胖再撞李知恩,一手镜打得李导神志不清,赛后看到ID人傻了

    说起狼队小胖和李知恩,直到现在估计大家都忘不了双方互怼的那局比赛吧,当时的李知恩算是关注量很高的一个主播了,狼队小胖也刚刚登上KPL赛场,双方的争吵也引起了很大的节奏,不过前段时间…

    2022年8月12日
  • 专家:中国工业软件发展迎来政策窗口期

    中新财经6月18日电 (夏宾 许亚倩 杨辰凌)记者17日从中国电子信息产业发展研究院获悉,中国工业软件发展迎来政策窗口期。 工业软件是提升工业发展质量和效益的必备工具,是支撑现代工…

    2022年6月20日
  • 一入股市深似海,小白复盘等风来

    2022.8.5 短线小白第一次写复盘,本身也是一个学习者,难免有各种错误,各位大佬海涵,写记录贴主要是想记录自己的成长过程。 1、情绪数据(括号内为昨日数据)涨停梯度:一板50(…

    2022年8月6日
  • 恭喜篮网,双星闪耀!闹剧终于结束,蔡崇信是真“狠”啊

    不得不说,篮网在经过一系列的“迷之操作”后,成功地把自己拉下了神坛。 如果说选择纳什为主教练是一个错误的开始,放弃哈登是一个有失理智的操作,那么放权给杜欧的操作,则彻底葬送了球队的…

    2022年7月21日

联系我们

联系邮箱:admin#wlmqw.com
工作时间:周一至周五,10:30-18:30,节假日休息