首页 > 系统相关 >Linux——ansible的应用

Linux——ansible的应用

时间:2024-06-12 19:30:58浏览次数:11  
标签:主机 客户机 ansible 分组 inventory 应用 Linux 目录

要让ansible管理业务里的主机

1.得先知道,有哪些主机

  用IP地址,用主机名

2.知道了有哪些主机以后,精细、细分管理

  主机要用某些办法,分组管理

在ansible里,要用一个东西:清单->inventory

inventory

这个东西的存在形式

ansible是为了人方便使用,为了简单

所以,inventory,就是个文本文件

最简单的写法

每行也一个,写很多行,可以写IP地址,也可以写主机名(需要DNS)

进一步,进行简单的分组

按照人的思路,头上加个“标题”,在这个标题下写很多行

[组名]

列出主机

分组很灵活,并不强制每个主机必须在某一个组里

任意分组之间,没有冲突,完全看需求

比如:可以同时按照多种条件去同时写很多分组

      1)按照服务器的类型分:web服务器、db服务器、storage服务器……

      2)同时,有可以按照位置:A机房的一组,B机房的一组

再比如,可以分组套分组

在inventory文件,先按照其他条件分好了组

然后,以“组名”为成员,再分组

如果是套着写,通常写在文件末尾

不论是分组,还是成员,写法也可以灵活

按照上面写的,通常是IP或主机名

能不能写范围?

可以写匹配范围,比如字符串的匹配,比如IP地址的网段和范围

servera,serverb……serverf

192.168.1.1……192.168.1.200

上面这种,就可以用范围表示,比如用 [ ]

假设,写好了inventory文件,怎么查看?

1)直接看文件

   但是,如果这个文件内容特别多,写的很长……

2)用ansible的命令去看,给你列出,比如某个组有哪些主机

   ansible 组名 --list-hosts

举个例子……

比如,有以下主机:

servera 192.168.1.101

serverb 192.168.1.102

serverc 192.168.1.103

可以分组

[webserver] 下面服务器,运行web,作为web服务器

serverb

[dbserver] 下面这个主机运行了数据库,作为dbserver

servera

[storageserver] 下面这个服务器,是存储服务器

serverc

[servers] 包含所有的服务器,可以写范围

servera

serverb

serverc

或写成

server[a:c]

[discuz:children] 按照业务分组套分组

webserver

dbserver

以上分组,是为了业务和用途

在对不同目标,做不同操作时,调用不同分组

最后,上面咱知道了inventory怎么写,问题来了,这个文件放哪儿?

说直白点

将来你想用哪个目录作为ansible工作目录,那就把inventory放哪……

比如:建立一个目录,专用于ansible,/var/zidonghua

就可以在/var/dizonghua/目录下,vim编辑一个叫做inventory的文件

可以在不同用途的工作目录下,写不同的inventory,然后各自执行

关于ansible的配置文件

1.并不是像其他服务一样用一个统一的守护进程或服务

  于是,这个东西配置文件,可以同时出现在不同位置

2.ansible配置文件

  ansible.cfg

  位置:

  1)/etc全局使用的

  2)每个Linux用户的主目录下,都可以放一个

  3)在每个ansible的工作目录里,都可以放一个

3.用途以及相关原因

  1)“越精确,范围越小,越优先”

每个工作目录,优先使用本目录下的配置文件

  2)ansible可以根据不同的任务分类,使用完全不同的工作目录

     这些工作目录之间也可以相配合补充

  3)还可以想更多办法,优化、组织ansible的工作目录

     可以目录套目录

     这些目录,还可以分别打包

4.配置文件的内容

  1)管理机要写明,连接到客户机时,要用客户机的哪个用户进行ssh登录

     以及,登录时候,要不要应答密码

     通常,在管理机和客户机之间,提前做好ssh免密登录

     需要注意

     为了保证服务器安全,通常是使用普通账户进行ssh访问

     然后,再想办法切换到root账户,做管理性的操作

  2)ansible就是为了自动化做管理性配置,于是,通常要切换到root用户

     在客户机上,要切换到root,再进行后续工作

     要指明,是否要切换root,是否要密码

用什么办法切换(su?sudo?)

             通常使用sudo方法,但是,需要在客户机提前配置好sudo

-m 的运用

接下来

已经有了主机的清单,要管理谁

也有了配置文件,连接以及切换root的方法

可以去让ansible执行“操作”

ansible这个东西,本身,并不一定非得写剧本才能操作

  有很多一次性操作,可以像执行命令一样,直接做

于是:运行临时命令

对于临时命令,不一定要保证“幂等性”

通常,会有哪些操作

比如:ping测试,收集客户机当前的信息、状态

举个栗子

#ansible  servera  -m  ping

对servera这台主机,发起一个ansible的临时操作

这个操作,调用了一个模块叫做ping

并不是说,用ansible执行ping命令……

servera,SUCCESS成功,这次操作本身成功了

但是,下面,changed是false,不是说操作失败或者写错东西

  而是说,这一次操作,没有造成客户机的状态的变更,和之前没变化

于是,有了一个问题:

我哪知道ansible有啥模块?我上哪知道模块咋用?

怎么解决

看内置的官方文档

查看当前内置有哪些模块

ansible-doc -l

找到目标模块,查看这个模块怎么用

ansible-doc 模块名

剧本(playbook)

现在,可以写各种临时命令

但如果,想把所有步骤,集合到一起,写到同一个文件里

让ansible自动按顺序执行

就必须要写“剧本”

剧本里面,也可以写临时命令,但是剧本有规范的文本格式

一个剧本里(playbook)

1.可以写多个“剧集”,每一集是一个“play”

2.每个play里

  指明,对哪些客户机操作,操作什么,顺序

具体格式

1.整个playbook开头,顶头写:---(三个横杠,没有空格)

2.往后退一层/一级,play的标题/名字

顶头写:一个横杠一个空格name冒号名字

---

- name: xxxxxxx

3.再往下

和上面一行的name对其

文件名,以“.yml”结尾

如果写完了playbook,让ansible执行:

#ansible-playbook  xxx.yml

可以在执行前,进行“格式检查”,不是运行检查,只检查剧本的格式

#ansible-playbook  --syntax-check  xxx.yml

空运行

演练、彩排?

能看到剧本执行的过程、流程、预期结果

标签:主机,客户机,ansible,分组,inventory,应用,Linux,目录
From: https://blog.csdn.net/Xinan_____/article/details/139634445

相关文章

  • Linux命令-⽤户、权限管理
    目录<1>查看当前⽤户:whoami<2>查看登录⽤户:who<3>退出登录账户:exit<4>添加⽤户账号:useradd<5>设置⽤户密码:passwd<6>删除⽤户:userdel<7>切换⽤户:su<8>查看有哪些⽤户组⽅法⼀:⽅法⼆:<9>添加、删除组账号:groupadd、groupdel<10>修改⽤户所在组:usermod<11>查......
  • linux内存管理(九)- 页面回收
    参考《深入理解linux内核架构》和这篇博客Linux中的内存回收[一]-知乎(zhihu.com)内核代码v6.8-rc2内存在计算机系统中经常是稀缺资源,当系统中内存不足甚至耗尽,为了让系统继续运行必须回收一部分内存。为了回收内存,我们必须首先知道系统中的内存都处于什么状态。内存中的页......
  • 系统内存占用下降 20%,卓创网络应用 OpenCloudOS 实践
    导语:卓创网络作为一家专注于招标采购领域的企业,主营产品「招采星」为超过4000家公司提供电子采购系统及相关配套服务,在使用OpenCloudOS后,系统内存占用由原来的33%降低到11.7%,下降20%+。本文将深入探讨卓创网络从传统架构到OpenCloudOS的转变,分析这一转变带来的技术优势......
  • linux mysql麒麟系统部署
    1、安装mysqlapt-getinstallmysql-servermysql-common2、取消大小写敏感 (1)、先删除mysql数据库rm-rf/var/lib/mysql (2)、设置my.cnf[mysqld]lower-case-table-names=1 (3)、初始化数据库,取消大小写敏感mysqld--initialize--user=mysql--lower-case-tab......
  • Linux Mint 21.3简介
    LinuxMint21.3是一个更新版本,其中包含了许多新特性和改进。以下是一些主要更新内容:1.Cinnamon6.0桌面环境:LinuxMint21.3采用了最新的Cinnamon6.0桌面环境,带来了新的功能和改进,例如支持Wayland会话(尽管仍处于实验性阶段)、改进的声音和电源小部件、对AVIF图像格式的新支......
  • 蒸发温差热机-大号尺寸饮水鸟发电应用原理详细分析
    蒸发温差热机-大号尺寸饮水鸟发电应用原理详细分析作为物联网数据采集解决方案专业提供商,数采物联网小编daq-iot在这里做以下内容介绍,并诚挚的欢迎大家讨论和交流  饮水鸟是一种热机,它利用温差将热能转换为设备内的压差,并执行机械做功。像所有热机一样,饮水鸟通过热力学循......
  • 阿里巴巴中国站关键字搜索API返回值应用案例:精准定位目标用户群体
    阿里巴巴中国站的关键字搜索API返回值在精准定位目标用户群体方面,具有广泛的应用案例。这些应用案例主要集中在以下几个方面:数据分析与市场调研:通过关键字搜索API,商家可以获取大量与特定商品或服务相关的搜索数据。对这些数据进行深度分析,可以了解目标用户群体的搜索习惯......
  • 《UML基础、案例与应用》习题记录-第12章
    部分习题,使用visio或plantuml,非正确答案,仅供参考,欢迎评论,谢绝转载。第12章构件图12.8.2习题1.构件图       2. ......
  • 大模型在医疗行业中的应用
    模型在医疗方面的应用正逐渐深入,为医疗领域带来了革命性的变革。以下是关于大模型在医疗方面应用的详细概述:一、疾病诊断和预测应用背景:通过分析大量的医疗数据,如病人的病例、病理图像和基因组数据,大模型能够帮助医生更准确地诊断和预测疾病。技术原理:利用深度学习技......
  • 边缘网关在智能制造工厂中的创新应用及效果-天拓四方
    在数字化浪潮席卷之下,智能制造工厂正面临着前所未有的数据挑战与机遇。边缘网关,作为数据处理与传输的关键节点,在提升工厂运营效率、确保数据安全方面发挥着日益重要的作用。本文将通过一个具体案例,详细阐述边缘网关在智能制造工厂中的创新应用及其带来的显著成效。案例背景某......