初识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.mzph.cn/news/823907.shtml

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

相关文章

​宁德时代:用一块电池玩转两个万亿赛道

2022 到 2023 连续两年,被称为国内储能行业的大储(发电侧、电网侧)元年和中储(工商业)元年,整个储能行业可谓是异常火爆,众多资本或企业纷纷涌入该赛道。 对于行业从业者来说,所从事…

力扣HOT100 - 206. 反转链表

解题思路: 迭代(双指针) class Solution {public ListNode reverseList(ListNode head) {ListNode cur head, pre null;while(cur ! null) {ListNode tmp cur.next; // 暂存后继节点 cur.nextcur.next pre; // 修改 next 引用指…

MOSFET效应管

【学习笔记】 金属氧化物半导体场效应晶体管(Metal Oxide Semiconductor Field Effect Transistor,简称MOSFET) MOSFET是三个端子器件,具有栅极、漏极和源极,栅极端子与漏极和源极之间的主导电流通道电气隔离&#xf…

连锁服装店用哪个进销存软件好

连锁服装店的进销存管理对于业务的高效运作至关重要,而选择合适的进销存软件能够极大地提升管理效率和经营水平。本文将介绍四款优秀的进销存软件,并重点关注商淘云连锁服装进销存管理系统,探讨其特点和优势。 1. 商淘云连锁服装进销存管理系…

喜报|炼石入选2024中国网络安全全景图 密码与数据安全六领

2024年4月12日,国内专业安全媒体安全牛发布《中国网络安全行业全景图(第十一版)》。第十一版全景图划分了16个一级安全分类和108个二级安全分类,汇集了510家安全厂商申报,实际收录为454家。全景图综合考量了产品的实用…

一文读懂uniapp中的tabBar底部导航

目录 1. 基本知识2. Demo 1. 基本知识 UniApp 中的 tabBar 是用来在应用程序底部显示可切换的选项卡的组件,通常用于实现底部导航栏 允许用户通过点击不同的选项卡来切换应用程序的不同页面或功能模块 其代码如下: "tabBar":{"color&q…

深入解析Rivest Cipher 4:理论与实践

title: 深入解析Rivest Cipher 4:理论与实践 date: 2024/4/17 20:30:58 updated: 2024/4/17 20:30:58 tags: 密码学RC4算法流密码密钥调度安全分析优缺点应用实践 第一章:引言 密码学简介: 密码学是研究如何保护通信和信息安全的学科。它涉…

# 从浅入深 学习 SpringCloud 微服务架构(一)基础知识

从浅入深 学习 SpringCloud 微服务架构(一)基础知识 1、系统架构演变: 1)单体应用架构。如电商项目。 用户管理、商品管理、订单管理,在一个模块里。 优点:开发简单,快速,适用于…

React中redux、react-redux、@reduxjs/toolkit状态管理库的使用方式

效果 下载依赖 npm install redux react-redux reduxjs/toolkit --save在src目录下创建文件 创建index.ts文件 import { configureStore } from reduxjs/toolkit import userSlice from ./userReducerconst store configureStore({reducer: {user: userSlice.reducer} }) //…

代码随想录算法训练营第四十三天| LeetCode 1049.最后一块石头的重量II、494. 目标和、474.一和零

一、LeetCode 1049.最后一块石头的重量II 文章讲解/视频讲解:https://programmercarl.com/1049.%E6%9C%80%E5%90%8E%E4%B8%80%E5%9D%97%E7%9F%B3%E5%A4%B4%E7%9A%84%E9%87%8D%E9%87%8FII.html#%E6%80%9D%E8%B7%AF 状态:已解决 1.思路 其实这个题跟上个题…

ssm056基于Java语言校园快递代取系统的设计与实现+jsp

校园快递代取系统设计与实现 摘 要 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本校园快递代取系统就是在这样的大环境下诞生,其可以帮助管理者在短…

4核8G配置服务器多少钱?2024年阿里云服务器700元1年价格便宜

4核8G配置服务器多少钱?2024年阿里云服务器700元1年价格便宜。阿里云4核8G服务器租用优惠价格700元1年,配置为ECS通用算力型u1实例(ecs.u1-c1m2.xlarge)4核8G配置、1M到3M带宽可选、ESSD Entry系统盘20G到40G可选,CPU采…

Linux下的权限:论老流氓root的存在

文章目录 用户身份切换提权 权限管理文件访问者文件访问权限文件类型目录权限默认权限粘滞位 用户 Linux下有两中用户:超级用户(root)、普通用户 超级用户:可以在Linux系统下做任何事情,不受到限制普通用户&#xff…

Java PDF文件流传输过程中速度很慢,如何解决?

专栏集锦,大佬们可以收藏以备不时之需: Spring Cloud 专栏:http://t.csdnimg.cn/WDmJ9 Python 专栏:http://t.csdnimg.cn/hMwPR Redis 专栏:http://t.csdnimg.cn/Qq0Xc TensorFlow 专栏:http://t.csdni…

VulnHub系列 DC-4靶机 渗透详细过程 | 红队打靶

VulnHub系列 DC-4靶机详细渗透测试过程 目录 VulnHub系列 DC-4靶机详细渗透测试过程一、将靶机导入到虚拟机当中二、渗透流程主机发现端口扫描Web渗透暴力破解命令执行反弹shellSSH暴力破解提权 一、将靶机导入到虚拟机当中 靶机地址: https://download.vulnhub.c…

Matlab|基于改进遗传算法的配电网故障定位

目录 1 主要内容 2 部分代码 3 部分程序结果 4 下载链接 1 主要内容 该程序复现文章《基于改进遗传算法的配电网故障定位》,将改进的遗传算法应用于配电网故障定位中, 并引入分级处理思想, 利用配电网呈辐射状的特点, 首先把整个配电网划分为主干支路和若干独立…

中国12.5米DEM地形瓦片数据免费领取!

之前向大家公开了中国34个省12.5米DEM地形瓦片数据的免费领取链接,大家对12.5米DEM数据的使用需求很强烈,领取也很积极,也有不少读者反馈能否提供全国范围的12.5米DEM地形瓦片数据,因为分省级地形瓦片数据想要合并成全国数据&…

ES-全文搜索

模糊查询: 写数据通过id路由到master分片 查询数据到一个节点,该节点会作为一个调度节点判断负载等情况将请求转发到真正节点(一般し轮询)

提升批量邮箱API发送效率:技巧与策略探讨

批量邮箱API发送邮件时如何提高发送效率?1、优化邮件内容和目标客户列表;2、利用邮件模板和个性化功能;3、合理设置发送时间和频率;4、使用A/B测试和数据分析;5、保持邮件列表更新和清洁。 一、优化邮件内容和目标客户…

CMEF | 澳鹏Appen精彩亮相第89届中国国际医疗器械博览会

4月14日,为期四天的第89届中国国际医疗器械博览会(CMEF)盛大收官。如今,人们的健康需求在人口老龄化等一系列因素的影响下持续增长,这意味着卫生系统也面对着更多具有复杂健康需求的患者。信息化、数字化、智能化已经成…