初识ansible核心模块

目录

1、ansible模块

1.1   ansible常用模块

1.2   ansible-doc -l 列出当前anisble服务所支持的所有模块信息,按q退出

1.3  ansible-doc 模块名称 随机查看一个模块信息

2、运行临时命令

         2.1 ansible命令常用的语法格式

3、常用模块详解与配置实例

3.1命令与脚本类模块

3.1 .1  command模块

3.1.2  scripts模块-传输脚本到被管理端并执行脚本

3.2 文件与目录管理模块

3.2.1  file模块

实例1-创建/shcool目录

实例2-创建文件/shcool/test.txt

实例3-创建软连接/shcool/test.txt到/tmp/test.txt.soft​编辑

实例4-删除文件/目录、软连接

实例5-创建文件/tmp/test.txt ,所有者root,用户组root,权限为755

3.2.2  copy远程传输模块

实例1-传输/etc/hosts文件到/etc/hosts 

案例02-传输/etc/hosts⽂件到/etc/hosts-先备份然后修改

3.3服务管理模块

3.3.1 systemd

实例1-关闭firewalld

实例2-重启firewalld

3.4 软件包管理模块

3.4.1 yum源配置管理模块

实例1-批量增加nginx-yum源

3.4.2 yum模块

实例1-安装net-tools

3.4.3   get_url模块(wegt)

实例1-下载源码包到/packages目录下

3.5 系统管理模块

3.5.1 mount模块

3.5.2  cron模块

实例1-添加自动同步时间的定时任务

3.6   用户管理模块

3.6.1 user模块user

实例1-创建用户ami

3.5.2 group模块

实例1-创建用户kmi,gid为10088


官网:Ansible.Posix — Ansible Community Documentationicon-default.png?t=N7T8https://docs.ansible.com/ansible/latest/collections/ansible/posix/

1、ansible模块

Ansible服务实际上只是一个框架,能够完成工作的是模块化功能代码

1.1   ansible常用模块
模块名称模块作用
ping检查ansible与受控节点的连通性
yum 安装、更新及卸载软件
yum_repository管理主机的软件仓库配置文件。
template复制模板文件到受管节点主机。
copy新建、修改及复制文件。
user创建、修改及删除用户。
group创建、修改及删除用户组。
service启动、关闭及查看服务状态。
get_url从网络中下载文件。
file设置文件权限及创建快捷方式。
cron添加、修改及删除计划任务。
command直接执行用户指定的命令。
shell直接执行用户指定的命令(支持特殊字符)。
debug输出调试或报错信息。
mount挂载硬盘设备文件。
filesystem格式化硬盘设备文件。
lineinfile通过正则表达式修改文件内容。
setup收集受管节点主机上的系统及变量信息。
firewalld添加、修改及删除防火墙策略。
lvg管理主机的物理卷及卷组设备。
lvol

管理主机的逻辑卷设备。

1.2   ansible-doc -l 列出当前anisble服务所支持的所有模块信息,按q退出

如果要实现某个功能,但是不知道用什么模块,或者知道模块名称但是不清楚模块使用,可以使用ansible-doc命令查找。1.3  

1.3  ansible-doc 模块名称 随机查看一个模块信息

会在屏幕上显示出这个模块的作用、可用参数及实例

[root@localhost ~]# ansible-doc ping
> PING    (/usr/lib/python2.7/site-packages/ansible/modules/systeA trivial test module, this module always returns `pong' successful contact. It does not make sense in playbooks, it is useful from `/usr/bin/ansible' to verify the abilitlogin and that a usable Python is configured. This is NOTping, this is just a trivial test module that requires Pyon the remote-node. For Windows targets, use the [win_pinmodule instead. For Network targets, use the [net_ping] minstead.* This module is maintained by The Ansible Core Team
OPTIONS (= is mandatory):- dataData to return for the `ping' return value.If this parameter is set to `crash', the module will causexception.[Default: pong]type: strSEE ALSO:* Module net_pingThe official documentation on the net_ping module.https://docs.ansible.com/ansible/2.9/modules/net_ping_module.html* Module win_pingThe official documentation on the win_ping module.https://docs.ansible.com/ansible/2.9/modules/win_ping_module.htmlAUTHOR: Ansible Core Team, Michael DeHaan
:> PING    (/usr/lib/python2.7/site-packages/ansible/modules/system/ping.py)A trivial test module, this module always returns `pong' onsuccessful contact. It does not make sense in playbooks, butit is useful from `/usr/bin/ansible' to verify the ability tologin and that a usable Python is configured. This is NOT ICMPping, this is just a trivial test module that requires Pythonon the remote-node. For Windows targets, use the [win_ping]module instead. For Network targets, use the [net_ping] moduleinstead.* This module is maintained by The Ansible Core Team
OPTIONS (= is mandatory):- dataData to return for the `ping' return value.If this parameter is set to `crash', the module will cause anexception.[Default: pong]type: strSEE ALSO:* Module net_pingThe official documentation on the net_ping module.https://docs.ansible.com/ansible/2.9/modules/net_ping_module.html* Module win_pingThe official documentation on the win_ping module.https://docs.ansible.com/ansible/2.9/modules/win_ping_module.htmlAUTHOR: Ansible Core Team, Michael DeHaanMETADATA:status:- stableinterfacesupported_by: coreEXAMPLES:# Test we can logon to 'webservers' and execute python with json lib.
# ansible webservers -m ping# Example from an Ansible Playbook
- ping:# Induce an exception to see what happens
- ping:data: crashRETURN VALUES:ping:description: value provided with the data parameterreturned: successtype: strsample: pong(END)

2、运行临时命令

在ansible服务中,ansible是用于执行临时任务的命令,执行后结束(与基本文件的可重复执行不同)。在使用ansible命令时,必须指明受管主机信息。

2.1 ansible命令常用的语法格式

ansible受管主机节点 -m模块名称[-a模块参数]

其中,-a是要传递给模块的参数,只有功能极其简单的模块才不需要额外参数

                                                     ansible命令常用参数列表

参数作用
-k 手动输入ssh协议密码
-i指定主机清单文件
-m 指定要使用的模块名
-M指定要使用的模块路径
-S使用su命令
-T设置SSH协议连接超时时间
-a设置传递给模块的参数
--version查看版本信息
-h帮助信息

3、常用模块详解与配置实例

3.1命令与脚本类模块
3.1 .1  command模块

仅⽀持简单命令,不⽀持特殊符号,管道....

⚠ 这个模块是默认模块,ansible不加上模块,默认就使⽤这个模块.

ansible all   -m command -a '命令'
ansible all  -a 'hostname' #相当于省略 -m command 

3.1.2  scripts模块-传输脚本到被管理端并执行脚本

传输脚本

执行脚本

[root@ansible ~]# mkdir -p /server/scripts
[root@ansible ~]# vi /server/scripts/yum.sh
[root@ansible ~]# cat /server/scripts/yum.sh
yum install ipvsadm
[root@ansible ~]# ansible dev -m script -a '/server/scripts/yum.sh'
192.168.81.132 | CHANGED => {"changed": true, "rc": 0, "stderr": "Shared connection to 192.168.81.132 closed.\r\n", "stderr_lines": ["Shared connection to 192.168.81.132 closed."], "stdout": "Loaded plugins: fastestmirror\r\nLoading mirror speeds from cached hostfile\r\n * base: ftp.sjtu.edu.cn\r\n * extras: mirrors.aliyun.com\r\n * updates: mirrors.aliyun.com\r\n\rbase                                                     | 3.6 kB     00:00     \r\n\rdocker-ce-stable                                         | 3.5 kB     00:00     \r\n\rextras                                                   | 2.9 kB     00:00     \r\n\rupdates                                                  | 2.9 kB     00:00     \r\nPackage ipvsadm-1.27-8.el7.x86_64 already installed and latest version\r\nNothing to do\r\n", "stdout_lines": ["Loaded plugins: fastestmirror", "Loading mirror speeds from cached hostfile", " * base: ftp.sjtu.edu.cn", " * extras: mirrors.aliyun.com", " * updates: mirrors.aliyun.com", "", "base                                                     | 3.6 kB     00:00     ", "", "docker-ce-stable                                         | 3.5 kB     00:00     ", "", "extras                                                   | 2.9 kB     00:00     ", "", "updates                                                  | 2.9 kB     00:00     ", "Package ipvsadm-1.27-8.el7.x86_64 already installed and latest version", "Nothing to do"]
}[root@ansible ~]# 

查看受管主机,验证!!!

3.2 文件与目录管理模块

file 创建/删除 文件、目录、软连接

copy 远程分发文件、目录、软件包、压缩包 

3.2.1  file模块

管理⽂件或⽬录,软连接

file模块中的选项
path路径(⽬录,⽂件) 必须要写
src(source源)源⽂件⼀般⽤于link(创建软连接模式) ⽤于指定源⽂件
state

状态(模式)

state=directory 创建⽬录

state=file (默认) 更新⽂件,如果⽂件不存在也不创建.

state=link 创建软连接

state-hard 创建硬链接

state=touch 创建⽂件

state=absent 删除

实例1-创建/shcool目录

在192.168.81.132主机上验证!!!

实例2-创建文件/shcool/test.txt

在192.168.81.132主机上验证!!!

实例3-创建软连接/shcool/test.txt到/tmp/test.txt.soft

验证!!!

实例4-删除文件/目录、软连接

实例5-创建文件/tmp/test.txt ,所有者root,用户组root,权限为755

3.2.2  copy远程传输模块
copy模块
srcsource源文件
destdestination ⽬标
backupbackup=yes 则会在覆盖前进⾏备份
mode修改权限
owner修改为指定所有者
group修改为指定⽤户组

实例1-传输/etc/hosts文件到/etc/hosts 

案例02-传输/etc/hosts⽂件到/etc/hosts-先备份然后修改

3.3服务管理模块

systemctl命令

启动/关闭/重启服务.

开机⾃启动/开机不⾃启动.

3.3.1 systemd
systemd模块
name⽤于指定服务名称
enabled 控制服务的开机⾃启动 enabled=yes /enabled=no
state 

表示服务开,关,重启...

state=started 开启

state=stopped 关闭

state=reloaded 重读配置⽂件(服务⽀持) sshd,nfs

state=restarted 重启(关闭再开启)

daemon-reloadyes是否重新加载对应的服务的管理配置⽂件(讲解了systemctl配置⽂件.)
实例1-关闭firewalld

实例2-重启firewalld

3.4 软件包管理模块
3.4.1 yum源配置管理模块
yum源模块 yum_repositoryyum源配置⽂件内 容
name[epel]yum源中名字(中括号⾥⾯的名字即可.)
descriptionname=xxxxxxyum源的注释说明
baseurlbaseurl=yum源中下载软件包的地址(可以访问到repodata⽬录)
enabled=yes 或noenabled=1或0是否启动这个源
gpgcheck=yes或nogpgcheck=0是否启动gpgcheck功能
file (可以不加)指定yum源的⽂件 ⾃动添加.repo file=lidao 默认与模块名字⼀致.

实例1-批量增加nginx-yum源

.

[nginx]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
 ansible web  -m yum_repository   -a 'name=nginx description="nginx stable repo" baseurl="http://nginx.org/packages/centos/$releasever/$basearch/"  gpgcheck=no              enabled=yes'
3.4.2 yum模块
yum模块
name指定软件包的名字
state

installed 安装(present)

removed 删除 (absent)

latest安装或更新

实例1-安装net-tools

方法一:ansible 192.168.81.132 -m yum -a 'name=net-tools state=installed'

方法二:ansible 192.168.81.132  -a  'yum install net-tools -y'

3.4.3   get_url模块(wegt)
get_url下载功能
url指定要下载的地址
dest下载到哪个目录
实例1-下载源码包到/packages目录下

验证!!!

3.5 系统管理模块

mount挂载nfs模块

cron 管理定时任务

3.5.1 mount模块
mount
fstyps指定文件系统(nfs)
src源地址(nfs)服务端地址
path挂载点(要把源挂载点到哪里)
state

state=absent         卸载(umount)并修改fstab(清理配置)

atate=unmounted  卸载不修改/etc/fstab

state=present        仅修改/etc/fstab 不挂载

mounted                挂载(⽤mount命令)并修改/etc/fstab(永久挂载)

remounted             重新挂载

实例1-挂载

192.168.81.132把nfs共享的⽬录/data⽬录挂载到/upload_video 
步骤01_192.168.81.132上⾯创建挂载点/upload_video
ansible 192.168.81.132  -m file  -a 'path=/upload_video   state=directory'
步骤02_挂载nfsansible 192.168.81.132 -m mount   -a 'fstype=nfs src="192.168.81.132:/data" path=/upload_video 
state=mounted 'ansible web -a 'df -h'ansible web -a 'tail -2 /etc/fstab'

3.5.2  cron模块
cron模块 定时任 务模块定时任务配置中 的内容
name#及后⾯的内容定时任务名字(⼀定要加上), 对应下⾯注释的内容
minute*/2分钟 minute="*/2",如果没有⽤到不⽤填写即可
hour⼩时
day⽇期
month⽉份
week周⼏
job指定命令或脚本(定向到空) job="/sbin/ntpdate ntp1.aliyun.com &>/dev/null"
statepresent 默认是添加 添加定时任务 absent 删除

实例1-添加自动同步时间的定时任务
#1. sync time lidao996 
*/2 * * * * /sbin/ntpdate ntp1.aliyun.com &>/dev/null
步骤01_备份数据
ansible all  -a  'cp /var/spool/cron/root /tmp/' 
ansible all  -a  'ls -l /tmp/root' 
ansible all  -a  'crontab -r'
步骤02_书写定时任务
ansible all  -m cron -a 'name="sync time by lidao996 20221111" minute="*/2" 
job="/sbin/ntpdate ntp1.aliyun.com &>/dev/null" state=present'

3.6   用户管理模块

group 创建组模块

user    创建用户模块

3.6.1 user模块user
user模块
namewww用户名
uid指定uid
group指定用户组
shell指定命令解释器
create_home是否创建家目录(yes/no)
state

present 添加

absent   删除

实例1-创建用户ami

实例2-创建虚拟用户virtual  ,指定uid为888

命令解释器: /sbin/nologin

不创建用户家目录

方法一: useradd -u 888 -s /sbin/nologin -M  virtual 

方法二:ansible 192.168.81.132 -m user -a 'name=virtual  uid=888 shell=/sbin/nologin create_home=no state=present'

3.5.2 group模块
group
name 指定用户组名字
gid指定组的gid
state 

present 添加

absent   删除

实例1-创建用户kmi,gid为10088

#为美好的开源世界贡献一份力量

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

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

相关文章

【攻防世界】bug

垂直越权IP绕过文件上传 垂直越权 IP绕过 bp抓包,添加请求头X-Forwarded-For:127.0.0.1 文件上传 文件上传绕过: 1. mime检测(Content-Type) 2. 大小写绕过 3. 等价替换(php5,php3) 4. 利用J…

python笔记 | 哥德巴赫猜想

哥德巴赫猜想:每个不小于6的偶数都可以表示成两个素数之和。 素数:只能被1和自身整除的正整数。就是大于1且除了1和它本身之外没有其他因数的数。例如,2、3、5、7、11等都是素数,而4、6、8、9等则不是素数。 下面这段Python代码…

SRIO系列-基本概念及IP核使用

参考:串行RapidIO: 高性能嵌入式互连技术 | 德州仪器 SRIO协议技术分析 - 知乎 PG007 目录 一、SRIO介绍 1.1 概要 1.2 SRIO与传统互联方式的比较 1.3 串行SRIO标准 1.4 SRIO层次结构: 1.4.1 逻辑层 1.4.2 传输层协议 1.4.3 物理层 二、Xilinx…

动手写sql 《牛客网80道sql》

第1章:SQL编写基础逻辑和常见问题 基础逻辑 SELECT语句: 选择数据表中的列。FROM语句: 指定查询将要从哪个表中检索数据。WHERE语句: 过滤条件,用于提取满足特定条件的记录。GROUP BY语句: 对结果进行分组。HAVING语句: 对分组后的结果进行条件过滤。O…

Springboot项目的测试类书写(速通)

目录 前言1. 单元测试的测试类2. 框架测试的测试类 前言 在实际开发中,如果只是做一个简单的单元测试(不涉及端到端、数据库交互、API调用、消息队列处理等),我为了方便一般都是找块儿地方写一个main方法来跑一下就行了&#xff…

支付系统核心逻辑 — — 状态机(JavaGolang版本)

支付系统核心逻辑 — — 状态机 代码地址:https://github.com/ziyifast/ziyifast-code_instruction/tree/main/state_machine_demo 1 概念:FSM(有限状态机),模式之间转换 状态机,也叫有限状态机&#xff08…

UE5 HLSL 详细学习笔记

这里的POSITION是变量Position的语义,告诉寄存器,此变量的保存位置,通常语义用于着色器的输入和输出,以冒号“:”的方式进一步说明此变量,COLOR也类似 还有什么语义呢? HLSL核心函数&#xff1a…

云服务器安装Mysql、MariaDB、Redis、tomcat、nginx

前置工作 进入根目录 cd / 都在/usr/local/src文件夹) 上传压缩包 rz 压缩包 Mysql 1.下载并安装MySQL官方的 Yum Repository wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm rpm -ivh mysql-community-release-el7-5.noarch.rpm yum…

每日算法4/17

1552. 两球之间的磁力 题目 在代号为 C-137 的地球上,Rick 发现如果他将两个球放在他新发明的篮子里,它们之间会形成特殊形式的磁力。Rick 有 n 个空的篮子,第 i 个篮子的位置在 position[i] ,Morty 想把 m 个球放到这些篮子里&…

工业数学模型——高炉煤气发生量预测(三)

1、工业场景 冶金过程中生产的各种煤气,例如高炉煤气、焦炉煤气、转炉煤气等。作为重要的副产品和二次能源,保证它们的梯级利用和减少放散是煤气能源平衡调控的一项紧迫任务,准确的预测煤气的发生量是实现煤气系统在线最优调控的前提。 2、…

A Geolocation Databases Study(2011年)第二部分:Geolocation Services

下载地址:A Geolocation Databases Study | IEEE Journals & Magazine | IEEE Xplore 被引次数:195 Shavitt Y, Zilberman N. A geolocation databases study[J]. IEEE Journal on Selected Areas in Communications, 2011, 29(10): 2044-2056. 2. Geolocation Services…

2024认证杯数学建模C题思路模型代码

目录 2024认证杯数学建模C题思路模型代码:4.11开赛后第一时间更新,获取见文末名片 以下为2023年认证杯C题: 2024年认证杯数学建模C题思路模型代码见此 2024认证杯数学建模C题思路模型代码:4.11开赛后第一时间更新,获…

一文掌握:图片转Base64编码的原理、实践(自定义图片本地缓存等)以及优化事项

图片转Base64是指将一幅图片(如PNG、JPEG、GIF等格式)的二进制数据编码为符合Base64规范的文本字符串的过程。图片Base64编码将图片数据转换为ASCII字符串,便于网络传输和存储。实现步骤包括读取图片文件、转换为字节数组,再通过编…

Windows 安装 A UDP/TCP Assistant 网络调试助手

Windows 安装 A UDP/TCP Assistant 网络调试助手 0. 引言1. 下载地址2. 安装和使用 0. 引言 需要调试一个实时在线聊天程序,安装一个UDP/TCP Assistant 网络调试助手,方便调试。 1. 下载地址 https://github.com/busyluo/NetAssistant/releases 2. 安…

Vue3项目 网易严选_学习笔记

Vue3项目 网易严选_第一天 主要内容 项目搭建vuex基础路由设计首页顶部和底部布局 学习目标 知识点要求项目搭建掌握vuex基础掌握路由设计掌握首页顶部和底部布局掌握 一、项目搭建 1.1 创建项目 vue create vue-wangyi选择vue3.0版本 1.2 目录调整 大致步骤&#xff…

美格智能出席紫光展锐第三届泛金融支付生态论坛,引领智慧金融变革向新

4月16日,以“融智创新,共塑支付产业新生态”为主题的紫光展锐第三届泛金融支付生态论坛在福州举办,来自金融服务机构、分析师机构、终端厂商、模组厂商等行业各领域生态伙伴汇聚一堂,探讨金融支付产业的机遇与挑战。作为紫光展锐重…

个人网站制作 Part 24 添加用户反馈功能[Userback] | Web开发项目添加页面缓存

文章目录 👩‍💻 基础Web开发练手项目系列:个人网站制作🚀 添加用户反馈功能🔨使用反馈工具🔧步骤 1: 选择反馈工具🔧步骤 2: 注册Userback账户🔧步骤 3: 获取反馈按钮代码 使用Vue.…

生成对抗网络GAN的扩展应用理解

注:本文仅个人学习理解,如需详细内容请看原论文! 一、cycleGAN 1.整体架构: 将图片A通过生成器生成图片B,然后通过判别器判别图片B的真假;并且图片B通过另一个生成器生成A‘,让A和A’近似。 2…

Linux 下的文件夹对比工具 vddiff 介绍

大家好,我是孔令飞,字节跳动云原生开发专家、前腾讯云原生技术专家;《企业级Go项目开发实战》作者,云原生实战营 知识星球星主。欢迎关注我的公众号【令飞编程】,干货不错过。 在大家的日常工作中有没有遇到以下场景&a…

初始Next.js

版本: 本系列next.js基于的是目前最新版本的 v14 版本,需要 Node.js 18.17 及以后版本 创建项目: 最快捷的创建 Next.js 项目的方式是使用 create-next-app脚手架,你只需要运行: npx create-next-applatest&&am…