运维自动化,你必须掌握ansible如何部署

来自:51CTO博客,作者:羊木狼

链接:https://blog.51cto.com/guoting/1553446

ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。 ansible是基于模块工作的,本身没有批量部署的能力。真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架。主要包括:(1) 连接插件connection plugins:负责和被监控端实现通信;(2) host inventory:指定操作的主机,是一个配置文件里面定义监控的主机;(3) 各种模块核心模块、command模块、自定义模块;(4) 借助于插件完成记录日志邮件等功能;playbook:剧本执行多个任务时,非必需可以让节点一次性运行多个任务。

image

如何部署ansible ?1.准备如表-1所示的实验环境,操作系统为RHEL8,配置主机名称、IP地址、YUM源。

image

ansible原理:

控制端主机自带很多模块(模块就是脚本);

ansible通过ssh远程被管理主机,将控制端的模块(脚本)或命令传输到被管理主机;

在被管理端主机执行模块(脚本)或命令,执行不同的模块或命令可以实现不同的功能;

最后ansible退出ssh远程。

绝大多数模块(脚本)都需要参数才能执行成功!!!类似于shell脚本的位置变量!

拓扑结构如图-1所示。

image

2.步骤一:准备基础环境

控制节点要求:

· 域名解析(为了方便后期操作,可以不做)

· 配置SSH密钥(ansible是基于ssh实现远程控制)

· 安装Ansible软件

1)Control控制节点

修改/etc/hosts,在文件中手动添加如下内容,修改该文件的目的是做域名解析。
1. [root@control ~]# vim  /etc/hosts        #修改文件,手动添加如下内容(不要删除文件原来的内容)
2. 192.168.4.253    control    
3. 192.168.4.11        node1    
4. 192.168.4.12        node2    
5. 192.168.4.13        node3    
6. 192.168.4.14        node4    
7. 192.168.4.15        node5

如何验证?

[root@control ~]# ping  node1   #可以使用ping命令依次ping所有域名

配置SSH密钥实现免密码登录(非常重要)

Ansible是基于SSH远程的原理实现远程控制,如果控制端主机无法免密登录被管理端主机,后续的所有试验都会失败!!

1. [root@control ~]#  ssh-keygen  -f  /root/.ssh/id_rsa   -N  ''       #生成ssh密钥
2. #-f指定密钥文件存放在哪个目录,文件叫什么名字,-N ''设置密钥的密码为空
3. [root@control ~]#  for i in node1 node2 node3 node4 node5
4. do
5. ssh-copy-id   $i
6. done
7. #拷贝密钥到远程主机
8. #提示:拷贝密钥到远程主机时需要输入对方电脑的账户密码才可以!!
9. #拷贝密钥到node1就需要输入node1对应账户的密码,拷贝密钥到node2就需要输入node2对应的密码

如何验证?

警告:如果有任何一台主机远程还需要密码,就不要往下继续操作,后面实验都会失败!!!

[root@control ~]# ssh  node1            #使用ssh命令依次远程

所有主机都可以免密码登录

  1. 部署Ansible软件(仅Control主机操作,软件包在ansible_soft目录)。
1. [root@control ~]# tar -xf   ansible_soft.tar.gz
2. [root@control ~]# cd ansible_soft
3. [root@control ansible_soft]# dnf  -y  install   *

被控制节点要求:· Ansible默认通过SSH协议管理机器· 被管理主机要开启SSH服务,并允许控制主机登录· 被管理主机需要安装有Python步骤二:修改配置文件****主配置文件说明:主配置文件ansible.cfg(主配置文件的内容可以参考/etc/ansible/ansible.cfg)ansible配置文件查找顺序首先检测ANSIBLE_CONFIG变量定义的配置文件(默认没有这个变量)其次检查当前目录下的./ansible.cfg文件再次检查当前用户家目录下~/ansible.cfg文件最后检查/etc/ansible/ansible.cfg文件

1) 修改主配置文件

1. [root@control ~]# mkdir  ~/ansible
2. [root@control ~]# vim  ~/ansible/ansible.cfg
3. [defaults]
4. inventory = ~/ansible/inventory            
5. #主机清单配置文件(inventory可以是任意文件名),英语词汇:inventory(清单、财产清单)
6. #forks = 5                                    #ssh并发数量
7. #ask_pass = True                             #使用密钥还是密码远程,True代表使用密码
8. #host_key_checking = False                  #是否校验密钥(第一次ssh时是否提示yes/no)

2) 修改主机清单文件(清单文件名必须与主配置文件inventory定义的一致)

1. [root@control ~]# vim  ~/ansible/inventory
2. [test]                    #定义主机组(组名称任意)
3. node1                    #定义组中的具体主机,组中包括一台主机node1
4. [proxy]                    #定义主机组(组名称任意),英语词汇:proxy(代理人,委托人)
5. node2                      #proxy组中包括一台主机node2
6. [webserver]
7. node[3:4]                 #这里的node[3:4]等同于node3和node4
8. [database]
9. node5
10. [cluster:children]        #嵌套组(children为关键字),不需要也可以不创建嵌套组
11. webserver                  #嵌套组可以在组中包含其他组
12. database
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,088评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,715评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,361评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,099评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 60,987评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,063评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,486评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,175评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,440评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,518评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,305评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,190评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,550评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,880评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,152评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,451评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,637评论 2 335