初识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/syste

        A 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 abilit
        login and that a usable Python is configured. This is NOT
        ping, this is just a trivial test module that requires Py
        on the remote-node. For Windows targets, use the [win_pin
        module instead. For Network targets, use the [net_ping] m
        instead.

  * This module is maintained by The Ansible Core Team
OPTIONS (= is mandatory):

- data
        Data to return for the `ping' return value.
        If this parameter is set to `crash', the module will caus
        exception.
        [Default: pong]
        type: str


SEE ALSO:
      * Module net_ping
           The official documentation on the net_ping module.
           https://docs.ansible.com/ansible/2.9/modules/net_ping
        _module.html
      * Module win_ping
           The official documentation on the win_ping module.
           https://docs.ansible.com/ansible/2.9/modules/win_ping
        _module.html


AUTHOR: 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' on
        successful contact. It does not make sense in playbooks, but
        it is useful from `/usr/bin/ansible' to verify the ability to
        login and that a usable Python is configured. This is NOT ICMP
        ping, this is just a trivial test module that requires Python
        on the remote-node. For Windows targets, use the [win_ping]
        module instead. For Network targets, use the [net_ping] module
        instead.

  * This module is maintained by The Ansible Core Team
OPTIONS (= is mandatory):

- data
        Data to return for the `ping' return value.
        If this parameter is set to `crash', the module will cause an
        exception.
        [Default: pong]
        type: str


SEE ALSO:
      * Module net_ping
           The official documentation on the net_ping module.
           https://docs.ansible.com/ansible/2.9/modules/net_ping
        _module.html
      * Module win_ping
           The official documentation on the win_ping module.
           https://docs.ansible.com/ansible/2.9/modules/win_ping
        _module.html


AUTHOR: Ansible Core Team, Michael DeHaan
        METADATA:
          status:
          - stableinterface
          supported_by: core
        

EXAMPLES:

# 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: crash


RETURN VALUES:

ping:
    description: value provided with the data parameter
    returned: success
    type: str
    sample: 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_挂载nfs
 ansible 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

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

RK3568驱动指南|第二篇 字符设备基础-第16章 一个驱动兼容不同设备实验

瑞芯微RK3568芯片是一款定位中高端的通用型SOC,采用22nm制程工艺,搭载一颗四核Cortex-A55处理器和Mali G52 2EE 图形处理器。RK3568 支持4K 解码和 1080P 编码,支持SATA/PCIE/USB3.0 外围接口。RK3568内置独立NPU,可用于轻量级人工…

PhotoShop2024安装包(亲测可用)

目录 一、软件简介 二、软件下载 一、软件简介 Adobe Photoshop是一款由Adobe Systems开发的图像编辑软件。它被广泛用于图像处理和数字艺术创作,是设计师、摄影师和艺术家们的首选工具之一。 主要功能: 图像编辑: Photoshop提供了丰富的编辑…

content-type对数据采集的影响,猿人学58题

在拿猿人学网站 https://www.python-spider.com/api/challenge58 练习的时候发现请求头中少了 content-type之后结果全部不对了 当我设置headers如下时 headers {# accept: application/json, text/javascript, */*; q0.01,content-type: application/x-www-form-urlencode…

【前端Vue】Vue从0基础完整教程第7篇:组件化开发,组件通信【附代码文档】

Vue从0基础到大神学习完整教程完整教程(附代码资料)主要内容讲述:vue基本概念,vue-cli的使用,vue的插值表达式,{{ gaga }},{{ if (obj.age > 18 ) { } }},vue指令,综合…

使用WebSocket实现答题积分排名实时更新的功能

需求分析 接到一个需求,是一个答题积分小程序,其中有一个功能需求是需要实时更新答题积分排名的。之前通常比较常见的需求,都是指定某个时间点才更新答题排行榜的数据的。 经过技术调研,要实现答题积分排名实时更新的功能&#…

基于SpringBoot+Vue的装饰工程管理系统(源码+文档+包运行)

一.系统概述 如今社会上各行各业,都喜欢用自己行业的专属软件工作,互联网发展到这个时候,人们已经发现离不开了互联网。新技术的产生,往往能解决一些老技术的弊端问题。因为传统装饰工程项目信息管理难度大,容错率低&a…

Word分节后,页码不连续、转PDF每节后多出空白页解决办法

1. 问题图例 废话少说,先上图: 2. 问题分析 问题分析:出现以上问题的原因可能有, 未链接到上一节页面布局中节的起始位置设置为[奇数页] 3. 解决问题 若为【1. 未链接到上一节】导致该问题出现,则我们需要选中页脚…

【Java开发指南 | 第十一篇】Java运算符

读者可订阅专栏:Java开发指南 |【CSDN秋说】 文章目录 算术运算符关系运算符位运算符逻辑运算符赋值运算符条件运算符(?:)instanceof 运算符Java运算符优先级 Java运算符包括:算术运算符、关系运算符、位运算符、逻辑运算符、赋值…

Resilience中的RateLimiter

Resilience中的RateLimiter 一、RateLimiter(限流)1.常见的限流算法漏桶算法(Leaky Bucket)令牌桶算法(Token Bucket)——Spring cloud 默认使用该算法滚动时间窗口(tumbling time window&#…

JVM之方法区的详细解析

方法区 方法区:是各个线程共享的内存区域,用于存储已被虚拟机加载的类信息、常量、即时编译器编译后的代码等数据,虽然 Java 虚拟机规范把方法区描述为堆的一个逻辑部分,但是也叫 Non-Heap(非堆) 设置方法…

就业班 第三阶段(nginx) 2401--4.17 day1 nginx1

负载均衡集群 1、集群是什么? 1 集群(cluster)技术是一种较新的技术,通过集群技术,可以在付出较低成本的情况下获得在性能、可靠性、灵活性方面的相对较高的收益,其任务调度则是集群系统中的核心技术。 …

【AI】什么是Ai Agent

什么是AI Agent? AI Agent是指人工智能代理(Artificial Intelligence Agent)是一种能够感知环境进行自主理解,进行决策和执行动作的智能体。AI Agent具备通过独立思考、调用工具逐步完成给定目标的能力。不同于大模型的区别在于&…

20240417,友元 FRIEND

本来要学习的吃瓜吃了一下午 目录 3.1 全局函数做友元 3.2 友元类 3.3 成员函数做友元 三&#xff0c;友元 3.1 全局函数做友元 #include<iostream> using namespace std; class Building {friend void goodGay(Building* building);//好朋友&#xff0c;可以访问…

13.哀家要长脑子了!

1. 442. 数组中重复的数据 - 力扣&#xff08;LeetCode&#xff09; 哎哟&#xff0c;可能是我太蠢了&#xff0c;我是真的觉得这些题目好神奇的&#xff0c;就这样做到了。感觉这道题跟昨天那道消失的它很类似&#xff0c;但是简单一点。 按照题目的要求数组如果排好序的话应…

必应Bing国内广告推广,帮助企业降低获客成本!

搜索引擎广告作为数字营销的重要手段之一&#xff0c;因其精准定位和效果可衡量而备受青睐。而在众多搜索引擎平台中&#xff0c;必应Bing以其独特的市场定位和用户群体成为不可忽视的广告推广渠道。云衔科技作为一家专业的数字营销服务提供商&#xff0c;致力于帮助企业实现高…

Fiddler抓包工具之高级工具栏中的Inspectors的使用

高级工具栏中的Inspectors的使用 Inspectors 页签允许你用多种不同格式查看每个请求和响应的内容。JPG 格式使用 ImageView 就可以看到图片&#xff0c;HTML/JS/CSS 使用 TextView 可以看到响应的内容。Raw标签可以查看原始的符合http标准的请求和响应头。Cookies标签可以看到…

标志寄存器

文章目录 标志寄存器1. ZF标志2. PF标志3. SF标志4. CF标志5. OF标志6. adc指令7. sbb指令8. cmp指令9. 检测比较结果的条件转移指令10. DF标志和串传送指令11. pushf和popf 标志寄存器 flag 和其他寄存器不一样&#xff0c;其他寄存器是用来存放数据的&#xff0c;都是整个寄…

MCU最小系统晶振模块设计

单片机的心脏&#xff1a;晶振 晶振模块 单片机有两个心脏&#xff0c;一个是8M的心脏&#xff0c;一个是32.768的心脏 8M的精度较低&#xff0c;所以需要外接一个32.768khz 为什么是8MHZ呢&#xff0c;因为内部自带的 频率越高&#xff0c;精度越高&#xff0c;功耗越大&am…

直拍打法 漫漫长夜

小时候爱玩的时候&#xff0c;有马琳&#xff0c;刘国梁这些大腿在&#xff0c;谁敢想象现在顶尖高手中只有一根独苗而且是欧洲本土独苗了&#xff1f; 小勒布伦&#xff0c;真*直拍之光。 有一说一&#xff0c;国际乒联对于器材的调整&#xff0c;无论是改低粘度的无机胶水&am…

Docker(七):容器监控工具(Portainer、CAdvisor)

一&#xff1a;轻量级可视化监控工具Portainer 可视化监控工具, 可以通过docker安装&#xff0c;用于管理和监控docker&#xff0c;基本上的docker命令都有对应的按钮来操作。 # always 表示docker重启了该容器也跟着重启 docker run -d --name portainer -p 8000:8000 -p 90…