day41 基础的模块

news/2025/4/1 2:55:43/文章来源:https://www.cnblogs.com/yangzaikai/p/18800078

基础模块

ad-hoc命令模式pingcommandshellcopyfilescriptcrongroupuser1.先看资料,看模块的语法
- 官网,看实例用法,语法注解
- ansible-doc  -s 模块名
- 你自己的学习笔记2.每一个模块独有的参数语法,都是
ad-hoc命令模式ansible 主机组  -m 模块名  -a "模块独有的参数"3.使用这些模块能解决什么问题

剩余模块

yum   软件管理,安装,卸载,升级systemd 对应 service 作用一样   ,管理服务的状态,启停,重载mount   挂载,可以挂载哪些文件系统 ,xfs , nfs , ext4arvhive   (归档),打包、且压缩文件,文件夹  ,对应命令是tar  -czf  命令unarchive (拆包) ,拆包,且解压缩,tar   -zxvf  

4.10 yum安装软件

yum模块明显就是一个专门用于管理软件的模块。

name 指定软件包名
state 指定对软件的操作状态,安装,卸载absentinstalledupdate_cache 是否更新yum缓存


官网文档示例用法

https://docs.ansible.com/ansible/latest/collections/ansible/builtin/yum_module.html#examples

yum模块其实就是在远程节点上,执行yum命令,你可以快速登录到目标机器,查看进程

安装net-tools最新版本

latest参数也用于升级软件包

ansible all -m yum  -a "name=net-tools  state=latest"
ansible all -m yum  -a "name=net-tools  state=installed"

卸载net-tools软件

ansible all -m yum  -a "name=net-tools  state=removed"

卸载rsync服务

ansible  172.16.141   -m yum -a "name=rsync  state=absent"

安装rsync服务

ansible  172.16.141   -m yum -a "name=rsync  state=installed"
ansible  172.16.141   -m yum -a "name=rsync  state=present"
ansible  172.16.141   -m yum -a "name=rsync  state=latest"

4.11 service/systemd模块

yum install  rsyncrsyncd.services脚本,yum给你生成systemctl start/stop/restart rsyncd
纯命令操作,shell不会记录你每一次的执行状态,执行记录ansible的模块去管理服务,就会记录每次的操作状态

该模块作用是针对yum包管理

service适用于centos6前的系统

systemd命令应用于centos7系统

要注意的是service模块依旧对centos7有效,但是建议大家使用systemd模块

  • systemd模块用于控制远程主机的systemd服务,说白了,就是Linux下的systemd命令。需要远程主机支持systemd
  • 用法和service模块基本相同

systemd模块参数

如果使用systemctl 管理程序的话,可以使用systemd模块,systemctl 可以 控制程序启/停,reload,开机启动,观察程序状态(status)等,掌握使用后管理就更方便了主要参数
daemon_reload:在执行任何其他操作之前运行守护进程重新加载,以确保systemd已经读取其他更改
enabled:服务是否开机自动启动yes|no。enabled和state至少要有一个被定义
masked:是否将服务设置为masked状态,被mask的服务是无法启动的
name:必选项,服务名称
no_block(2.3后新增):不要同步等待操作请求完成
state:对当前服务执行启动,停止、重启、重新加载等操作(started,stopped,restarted,reloaded)
user:使用服务的调用者运行systemctl,而不是系统的服务管理者

安装、启动nginx服务

1.安装nginx服务ansible web -m yum -a "name=nginx state=installed"2.启动服务ansible web -m systemd -a "name=nginx  state=started"3.查询nginx运行状态,这里ansible未直接提供status参数,你可以借助command模块即可
# systemd模块ansible web  -m shell -a "systemctl status nginx"ansible web  -m shell -a "ps -ef|grep nginx"ansible web  -m shell -a "netstat -tunlp|grep nginx"4.停止nginx服务
ansible web -m systemd -a "name=nginx  state=stopped"5.设置nginx开机自启()
# 先指定了名字是nginx,启动,停止,还是设置开机自启# 仅设置服务开机自启,并且立即启动
ansible web -m systemd -a "name=nginx state=started   enabled=yes"[root@master-61 ~]#ansible web -m shell -a "systemctl is-enabled nginx"
[root@master-61 ~]#ansible web -m shell -a "ps -ef|grep nginx"

4.12 mount挂载模块

state参数mounted1.立即挂载2.写入fstab文件3.创建挂载点unmounted1.卸载挂载设备2.不会删除fstab文件的记录present1.只写入fstab文件记录2.不会立即挂载absent1.删除fstab中记录2.卸载设备3.删除挂载点remounted1.重新挂载这个设备

给web-7机器挂载nfs目录(只写入/etc/fstab而不立即挂载)

挂载设备
1.立即挂载,可以访问该设备的资料
[root@master-61 ~]#ansible  172.16.1.7  -m mount  -a "src='172.16.1.31:/nfs-data' path='/test-nfs'    state=present  fstype=nfs "2.设置重启后,开机自动挂载, /etc/fstab文件
[root@master-61 ~]#ansible 172.16.1.7 -m shell -a "cat /etc/fstab"
172.16.1.7 | CHANGED | rc=0 >>#
# /etc/fstab
# Created by anaconda on Mon Apr 18 12:41:32 2022
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos-root /                       xfs     defaults        0 0
UUID=4b434f73-2809-489d-ac02-8a5e7803abd9 /boot                   xfs     defaults        0 0
#/dev/mapper/centos-swap swap                    swap    defaults        0 0
172.16.1.31:/nfs-data /test-nfs nfs defaults 0 0

给web-7机器挂载nfs目录(立即挂载且写入/etc/fstab)

ansible  172.16.1.7  -m mount  -a "src='172.16.1.31:/nfs-data' path='/test-nfs'    state=mounted  fstype=nfs "

取消挂载,以及删除fstab记录

1.删除fstab
2.卸载设备
3.删除挂载点ansible  172.16.1.7  -m mount  -a "src='172.16.1.31:/nfs-data' path='/test-nfs'    state=absent  fstype=nfs "

取消挂载,不删除fstab记录

ansible  172.16.1.7  -m mount  -a "src='172.16.1.31:/nfs-data' path='/test-nfs'    state=unmounted  fstype=nfs "

总结参数

state参数mounted1.立即挂载2.写入fstab文件3.创建挂载点unmounted1.卸载挂载设备2.不会删除fstab文件的记录present1.只写入fstab文件记录2.不会立即挂载absent1.删除fstab中记录2.卸载设备3.删除挂载点remounted1.重新挂载这个设备

4.13 archive压缩模块

官网文档
https://docs.ansible.com/ansible/latest/collections/community/general/archive_module.html

支持压缩类型

bz2gz ← (default)tarxzzip 用法文档
https://docs.ansible.com/ansible/latest/collections/community/general/archive_module.html#examples
指定format即可

压缩/etc配置文件到指定路径

压缩整个/etc文件夹到 /tmp/all_etc.tar.gz

path=/etc
dest=/tmp/all_etc.tar.gzbackup机器ansible backup -m archive  -a "path=/etc dest=/tmp/all_etc.tar.gz "[root@master-61 ~]#ansible backup -m archive  -a "path=/etc dest=/tmp/all_etc.tar.gz

压缩/var/log为zip类型到指定路径

ansible backup -m archive  -a "path=/var/log  dest=/tmp/all_log.zip  format=zip "

4.14 unarchive解压缩模块

ansible远程管理机器解压缩,准备好原文件原文件在61机器上
61机器的压缩文件,解压到 41机器的某目录还是在目标机器上
41机器上,解压缩到41机器的本地

注意了,你现在是远程解压缩,而不是在本机直接解压缩

https://docs.ansible.com/ansible/latest/collections/ansible/builtin/unarchive_module.html#examples

解压缩etc.tgz到指定目录(远程解压)

远程的解压缩41机器的/tmp下有 all_etc.tar.gz解压到/test-etc/ansible backup  -m unarchive  -a "src=/tmp/all_etc.tar.gz  dest=/test-etc/ remote_src=yes  "解压缩出了整个etc目录到 /test-etc/
[root@rsync-41 ~]#cd /test-etc/
[root@rsync-41 /test-etc]#ls
etc

将管理机的压缩包,解压到远程机器上

将master-61的压缩文件,解压到web-7机器上

1.生成 all_png.tgz数据2.远程解压到web-7机器上[root@master-61 /opt]#ansible backup -m unarchive  -a "src=/opt/all_png.tgz   dest=/test-etc/"3.检查

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/907922.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java面试基础

一、Java基础语法 1.1 环境搭建与开发 1、JDK、JRE、JVM的关系和区别?(高频plus)JDK:Java Development Kit,Java开发工具包,包含了JRE和一系列Java开发工具。 JRE:Java Runtime Environment,Java程序的运行环境,包含JVM、Java核心类库等。JRE只能用来运行Java应用程序…

day41 Ansible剧本的语法

day41--ansible剧本的学习 1.剧本的主题的内容剧本就是两大部分的知识点 -ansible 模块(以及模块的参数) -yaml语法3.工作以后 维护公司的剧本 -看剧本,看懂了,维护,修改 -修改各种的参数,文件的路径,文件的名字,服务的端口名字(就是该ansible各种的参数,参数的值)2。…

Windows系统迁移用户目录

Windows系统随着使用时间的延长,系统盘空间占用会越来越大,对于一些硬盘空间有限的主机而言,C盘空间剩余就越来越少,稍不注意可以可能就被占满了,导致系统都无法启动。正好我自己的笔记本电脑也遇到了同样的问题,因此就想把C:\Users目录迁移到其他分区中。 在实践中,使用…

iphone---苹果手机传输文件

使用手机,拍了一些照片和剪辑了一些视频,但是总感觉将手机里面的图片及视频传到电脑里面和麻烦,今天试了一下用U盘传,效率还可以,但是其中也遇到了一些问题,就在这里记录下: 传输方法:插入U盘,选择图片或文件,点击【分享】选择【存储到“文件”】点击【左上角浏览】…

Python+硅基流动API实现小说转有声读物

一、注册硅基流动账号获取文本转语音api 1.注册登录硅基流动注册、登录硅基流动查看apikey查看赠送的免费额度点击文档中心2.查看文本转语音api查看文本转语音api查看api使用指南查看文本转语音api的python调用方法二、python实现文本转语音功能 1.python调用api实现文本转语音…

蓝绿部署深度解析:从理论到实践的全方位学习指南

一、蓝绿部署的基本概念 (一)定义 蓝绿部署是一种软件发布策略,通过设置两个相同的环境(“蓝色”和“绿色”),最大限度地减少停机并降低与部署新版本应用程序相关的风险。 (二)工作原理 蓝绿部署的核心思想是将应用程序的部署过程分为两个阶段:测试阶段和生产阶段。在…

Elasticsearch 高级

Elasticsearch 高级建议阅读顺序:Elasticsearch 入门 Elasticsearch 搜索 Elasticsearch 搜索高级 Elasticsearch高级(本文)1. nested 类型 1.1 介绍 Elasticsearch 中的 nested 类型允许你在文档内存储复杂的数据结构,比如一个用户可能有多个地址,或者一个博客文章可能有…

mysql日志写马

mysql日志写马 条件 1.全局变量general_log为ON。 mysql有两个全局变量:general_log指的是日志保存状态,值为ON/OFF,general_log_file指的是日志的保存路径。 只有当general_log为ON时,日志才会被记录进去,所以我们要先打开这个全局变量,使用命令查看全局变量状态‘ show…

滚动部署学习指南:从理论到实践,掌握关键技术和流程

一、滚动部署概述 (一)定义 滚动部署是一种逐步更新应用实例的策略,通过逐批次替换旧版本实例来完成版本升级,以减少服务中断时间并降低更新风险。 (二)应用场景 滚动部署适用于需要高可用性和低风险的软件更新场景,例如 Web 应用程序更新、移动应用后端服务更新以及云原…

ctfshow-web入门-爆破(web21-web28)

web21 打开后要求登录附件是一个密码字典使用bp抓包,将抓到的东西进行base64解码发现是admin:密码的键值对添加payload,padload类型为自定义迭代器,位置1为admin:位置2为导入的字典添加base64编码和取消url编码然后开始攻击,发现长度和其他不同的包,查看响应,发现flagweb…

灰度发布学习大纲:从理论到实践,掌握关键技术和流程

一、灰度发布概述 1. 定义与别名灰度发布:一种渐进式的软件发布策略,也被称为金丝雀发布(Canary Release)。 目的:通过逐步向用户群体推送更新,降低新版本引入的潜在风险,提升用户体验,实现不停机的热迁移。2. 灰度发布的优势降低风险:逐步验证新版本的稳定性。 快速反…

代码随心录第三天|Leecode 203.移除链表元素 707.设计链表 206.反转链表

1、Leecode 203.移除链表元素 题目链接:https://leetcode.cn/problems/remove-linked-list-elements/description/ 题目描述:解题思路:移除操作就是让节点next指针直接指向下下一个节点,因为单链表的特殊性,只能指向下一个节点,所以头节点需要单独考虑,这种方法是直接使…