Ansible
通过在被控端推送模块(一般是用 Python
实现),然后在被控端解析、执行这些模块来工作,这些模块临时存储在客户端节点中; Ansible
通过 SSH
协议运行这些模块,并在完成后将其删除。
- 核心概念
-
控制端(Control Node):安装
Ansible
的主机称为控制端(本身也可以作为自己的被控端);只需要在控制端安装Ansible
即可。 -
被控端(Managed Node):具体执行任务的主机,可以有多个被控端。
-
资源清单(Inventory):控制端管理的一个主机列表,默认配置在 /etc/ansible/hosts 文件中。它包含每个节点的信息,比如 IP 地址或其主机名,可进行逻辑分组(单个主机、多个主机分组),对不同的主机和不同的主机组,做不同的操作。
-
模块(Module):真正用于执行特定任务的基础单元,可通过
ansible-doc -l | wc -l
查看Ansible
生态现有模块的数量。 -
ad-hoc: 临时命令,单条指令执行,在被控端一次执行一条指令。
-
playbook: 以YAML格式组织的指令集合,类似
Shell
脚本,在被控端一次执行多个任务;可以将Playbook
理解为一门编程语言。
How:如何使用Ansible
- 前提条件
-
在控制端与被控端都安装有Python环境;
-
主控端与被控端开启免密远程登录;
编辑/etc/hosts文件,添加集群中所有主机名
[root@ecs-kunpeng-0001 ~]# vim /etc/hosts
追加以下内容
192.168.0.6 control
192.168.0.53 node1
192.168.0.39 node2
192.168.0.46 node3
192.168.0.235 node4
192.168.0.166 node5
测试通过主机名在局域网内是否可以进行通信
[root@ecs-kunpeng-0001 ~]# ping node1
在控制端生成公钥与私钥
[root@ecs-kunpeng-0001 ~]# ssh-keygen -f /root/. ssh/id_rsa -N ‘’
将SSH密钥复制到局域网内的被控端主机
[root@ecs-kunpeng-0001 ~]#
for i in node1 node2 node3 node4 node5
do
ssh-copy-id $i
done
测试是否可通过SSH免密登录
[root@ecs-kunpeng-0001 ~]# ssh node1
- 安装Ansible
参考在华为鲲鹏openEuler20.03系统上安装Ansible
- 配置主机清单
配置主机清单,并对其进行分组(1个控制端,3个web服务,1个数据库服务,1个缓存服务)。
Ansible默认的配置文件位于/etc/ansible/hosts
[root@ecs-kunpeng-0001 ~]# vim /etc/ansible/hosts
在其中追加以下内容
[controller]
192.168.0.6
[web]
192.168.0.53
192.168.0.39
192.168.0.46
[db]
192.168.0.235
[cache]
192.168.0.166
- 常用指令
列出所有主机,all是一个关键字,表示主机清单中的所有主机
[root@ecs-kunpeng-0001 ~]# ansible all --list-hosts
hosts (6):
192.168.0.6
192.168.0.53
192.168.0.39
192.168.0.46
192.168.0.235
192.168.0.166
列出指定分组下的主机
[root@ecs-kunpeng-0001 ~]# ansible web --list-hosts
hosts (3):
192.168.0.53
192.168.0.39
192.168.0.46
对指定分组下的主机执行ping命令
[root@ecs-kunpeng-0001 ~]# ansible web -m ping
192.168.0.39 | SUCCESS => {
“changed”: false,
“ping”: “pong”
}
192.168.0.46 | SUCCESS => {
“changed”: false,
“ping”: “pong”
}
192.168.0.53 | SUCCESS => {
“changed”: false,
“ping”: “pong”
}
对所有主机执行uptime命令
[root@ecs-kunpeng-0001 ~]# ansible all -m command -a “uptime”
192.168.0.46 | CHANGED | rc=0 >>
23:00:35 up 54 days, 7:25, 1 user, load average: 0.00, 0.00, 0.00
192.168.0.53 | CHANGED | rc=0 >>
23:00:35 up 54 days, 7:25, 1 user, load average: 0.00, 0.00, 0.00
192.168.0.39 | CHANGED | rc=0 >>
23:00:35 up 54 days, 7:25, 1 user, load average: 0.00, 0.00, 0.00
192.168.0.6 | CHANGED | rc=0 >>
23:00:35 up 51 days, 14:15, 5 users, load average: 0.17, 0.17, 0.16
192.168.0.235 | CHANGED | rc=0 >>
23:00:35 up 54 days, 7:25, 1 user, load average: 0.00, 0.00, 0.00
192.168.0.166 | CHANGED | rc=0 >>
23:00:36 up 54 days, 7:25, 1 user, load average: 0.00, 0.00, 0.00
对指定分组下的主机执行hostname命令
[root@ecs-kunpeng-0001 ~]# ansible web -m command -a “hostname”
192.168.0.39 | CHANGED | rc=0 >>
ecs-kunpeng-0003
192.168.0.46 | CHANGED | rc=0 >>
ecs-kunpeng-0004
192.168.0.53 | CHANGED | rc=0 >>
ecs-kunpeng-0002
Note: ad-hoc命令返回信息的颜色不同,分别表示:
绿色:表示被控端没有修改;
黄色:表示被控端发生变更;
红色:表示有错误,关注提示信息;
遇到的问题:在执行每条ad-hoc命令时,每个主机会有一个警告。
[WARNING]: Platform linux on host 192.168.0.46 is using the discovered Python interpreter at /usr/bin/python, but future installation of another Python interpreter could change this. See https://docs.ansible.com/ansible/2.9/reference_appendices/interpreter_discovery.html for more information.
解决方法:有多种方法可以处理这个警告,最简单的方式是采用命令后附加参数,如下
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:Java)
难道这样就够了吗?不,远远不够!
提前多熟悉阿里往年的面试题肯定是对面试有很大的帮助的,但是作为技术性职业,手里有实打实的技术才是你面对面试官最有用的利器,这是从内在散发出来的自信。
备战阿里时我花的最多的时间就是在学习技术上,占了我所有学习计划中的百分之70,这是一些我学习期间觉得还是很不错的一些学习笔记
我为什么要写这篇文章呢,其实我觉得学习是不能停下脚步的,在网络上和大家一起分享,一起讨论,不单单可以遇到更多一样的人,还可以扩大自己的眼界,学习到更多的技术,我还会在csdn、博客、掘金等网站上分享技术,这也是一种学习的方法。
今天就分享到这里了,谢谢大家的关注,以后会分享更多的干货给大家!
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
的技术,我还会在csdn、博客、掘金等网站上分享技术,这也是一种学习的方法。
今天就分享到这里了,谢谢大家的关注,以后会分享更多的干货给大家!
[外链图片转存中…(img-4SmDFM9k-1713810239926)]
[外链图片转存中…(img-4fZ7XkNQ-1713810239926)]
[外链图片转存中…(img-zbJLyToM-1713810239926)]
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!