ansible常见模块应用简介

news2024/11/18 3:18:29

目录

  • command, shell, raw模块
  • file 模块
  • copy 模块
  • fetch 模块
  • lineinfile模块
  • unarchive解包解压缩 模块
  • user 模块
  • yum_repository 仓库管理
  • yum/dnf模块
  • Service/systemd模块
  • firewalld 模块
  • nmcli 模块
  • get_url 模块
  • mount模块

注意:该文档需要有 Linux 基础的看

command, shell, raw模块

区别:
command可以在受管主机上执行shell命令,但是不支持环境变量和操作符
shell模块调用的/bin/sh指令执行,也就是可以直接像终端环境一样使用
shell模块调用的/bin/sh指令执行
不需要受管主机上安装Python,直接使用远程shell运行命令,通常用于无法安装Python的系统

举例:

- name: Copy using inline content    # 剧本的描述
  hosts: web2  # 受控主机或者组
  tasks:   #  执行的任务
        - name: copy test  # 第一个任务的描述
          shell: touch /123.txt  # 使用的模块是shell作用是像shell环境里一样创建123.txt文档

file 模块

完成一些对文件的基本操作,比如,创建文件或目录、删除文件或目录、修改文件
权限等

path参数 :必须参数,用于指定要操作的文件或目录
state参数 : 创建文件还是目录还是链接等 state= touch|directory|link|hard|absent
owner参数 :用于指定被操作文件的属主
group参数 :用于指定被操作文件的属组
mode参数:用于指定被操作文件的权限

- name: file mode    # 剧本的描述
  hosts: web2  # 受控主机或者组
  tasks:   #  执行的任务
        - name: file  # 第一个任务的描述
          path: /123.txt    # 创建文件的路径
          owner: root   # 属主 root
          group: root
          mode: 777    # 文件权限
          state: touch  # 创建

copy 模块

copy模块的作用就是拷贝文件,它与fetch模块类似,不过,fetch模块是从远程主机中拉取
文件到ansible主机,而copy模块是将ansible主机上的文件拷贝到远程主机中。

src参数 :用于指定需要copy的文件或目录
dest参数 :用于指定文件将被拷贝到远程主机的哪个目录中,dest为必须参数
content参数 :当不使用src指定拷贝的文件时,可以使用content直接指定文件内容,src与
content两个参数必有其一,否则会报错。
force参数 : 是否强制覆盖,可选值有yes和no,默认值为yes,表示覆盖。
owner参数 : 指定文件拷贝到远程主机后的属主
group参数 : 指定文件拷贝到远程主机后的属组
mode参数 : 指定文件拷贝到远程主机后的权限

例:

- name: copy mode    # 剧本的描述
  hosts: web2  # 受控主机或者组
  tasks:   #  执行的任务
        - name: copy  # 第一个任务的描述
          src: /123.txt    # 要复制文件的路径
          dest: ~/     # 复制到的目的地路径
          owner: root   # 属主 root
          group: root
          mode: 777    # 文件权限
       

fetch 模块

拉取远程主机的文件,并以主机IP地址或者主机名为目录,并保留了原来的目录结构

dest 目标地址
src 源
flat yes 不按照src的目录来创建目录,flat为no就在当前路径创建和src一样的目录路径

例:

ansible webservers -m fetch -a 'src=/etc/hosts dest=/opt'   # 远程被控制节点copy文件到控制节点       

lineinfile模块

path参数 :必须参数,指定要操作的文件。
line参数 : 使用此参数指定文本内容。
state参数:删除对应的文本时,需要将state参数为absent,state的默认值为present
backup参数:是否在修改文件之前对文件进行备份。
create参数 :当要操作的文件并不存在时,是否创建对应的文件。

例:

- name: lineinfile mode    # 剧本的描述
  hosts: web2  # 受控主机或者组
  tasks:   #  执行的任务
        - name:   # 第一个任务的描述
          path: /123.txt
          line: "123\n12345"  # 在123.txt中写入的内容   会换行
          create: yes 
          state: present  #写入的内容存在就不会再写,不存在就写
       

unarchive解包解压缩 模块

src:解压的源路径
dest:解压到的目标路径
mode:设置解压缩后的文件权限

user 模块

user模块实现用户账号管理。

name=:用户名 
uid:用户的uid 
group:所属组,即私有组 
groups:附加组。 
state:状态。 

例:

- name: user mode    # 剧本的描述
  hosts: web2  # 受控主机或者组
  tasks:   #  执行的任务
        - user:   # 第一个任务的描述
     	  name: tom   # 创建的用户是tom
     	  group: tom   # 属 组是tom
     	  state: present   # 创建


       

yum_repository 仓库管理

name参数:必须参数,用于指定要操作的唯一的仓库ID,也就是”.repo”配置文件中每个仓库对应
的”中括号”内的仓库ID。
baseurl参数:此参数用于设置 yum 仓库的 baseurl。
description参数:此参数用于设置仓库的注释信息,也就是”.repo”配置文件中每个仓库对应的”
name字段”对应的内容。
file参数:此参数用于设置仓库的配置文件名称,即设置”.repo”配置文件的文件名前缀,在不使用
此参数的情况下,默认以 name 参数的仓库ID作为”.repo”配置文件的文件名前缀,同一个”.repo”
配置文件中 可以存在多个 yum 源。
enabled参数:此参数用于设置是否激活对应的 yum 源,此参数默认值为 yes,表示启用对应的
yum源,设置为 no 表示不启用对应的 yum 源。
gpgcheck参数:此参数用于设置是否开启 rpm 包验证功能,默认值为 no,表示不启用包验证,
设置为 yes 表示开启包验证功能。
gpgkey参数:当 gpgcheck 参数设置为 yes 时,需要使用此参数指定验证包所需的公钥。
state参数:默认值为 present,当值设置为 absent 时,表示删除对应的 yum 源。

例:

ansible web -m yum_repository -a 
'name=AppStream   description="AppStream" 
baseurl="http://classrom.example.com/rhel8/AppStream" gpgcheck=no file=rhel8'

yum/dnf模块

name参数:必须参数,用于指定需要管理的软件包,比如 nginx。
state参数:用于指定软件包的状态 ,默认值为。present,表示确保软件包已经安装,除了。
present,其他可用值有 installed、latest、absent、removed,其中 installed 与present 等效,
latest 表示安装 yum 中最新的版本,absent 和 removed 等效,表示删除对应的软件包。
disable_gpg_check参数:用于禁用对 rpm 包的公钥 gpg 验证。默认值为 no,在对应的 yum 源没有开启 gpg 验证的情况下,需要将此参数的值设置为 yes,否则会报错而无法进行安装。
enablerepo参数:用于指定安装软件包时临时启用的 yum 源。
disablerepo参数:用于指定安装软件包时临时禁用的 yum 源。

例:

ansible all -m yum -a 'name=telnet disable_gpg_check=yes disablerepo=local'

Service/systemd模块

name参数:此参数用于指定需要操作的服务名称,比如 nginx。 
state参数:此参数用于指定服务的状态,启动为 started;停止服务为 stopped。此参数的可用值有 started、stopped、restarted、reloaded。 
enabled参数:yes 表示将对应服务设置为开机启动,设置为 no 表示不会开机启动
arguments: 给命令提供一些选项:如
		ansible all -m service -a "name=network state=restarted args=eth0"
runlevel : 运行等级
sleep: 如果运行看restarted 则stop and start 之间沉睡几秒中

例:停止NGINX服务,开机不启动

ansible all -m systemd -a "name=nginx   state=stopped enabled=no "   

firewalld 模块

State 指防火墙策略状态enable disable present absent
service 指定服务
immediate 立即启用
port 端口 port=80/tcp
permanent 永久生效

例:添加http服务,永久添加,

ansible webservers -m firewalld -a 'service=http permanent=true immediate=true state=enabled'

nmcli 模块

nmcli

模块支持管理网络连接和设备。此模块支持配置网络接口组合和绑定,以及ipv4和ipv6寻址

在这里插入图片描述

例:

- name: mode    # 剧本的描述
  hosts: web2  # 受控主机或者组
  tasks:   #  执行的任务
	   nmcli:
	   conn_name: ens224 
	   ifname: ens224
	   type: ehternet
	   ip4: 172.25.250.30/24
	   gw4: 172.25.250.1
	   state: present

get_url 模块

该模块主要用于从http、ftp、https服务器上下载文件(类似于wget),主要有如下选项:

sha256sum:下载完成后进行sha256 check;
timeout:下载超时时间,默认10s
url:下载的URL 
url_password、url_username:主要用于需要用户名密码进行验证的情况
use_proxy:是事使用代理,代理需事先在环境变更中定义
owner: 指定属主
group: 指定属组

例:

- name: user mode    # 剧本的描述
  hosts: web2  # 受控主机或者组
  tasks:   #  执行的任务
	 	get_url:
	 	url: https://www.baidu.com
	 	dest: /etc/   # 下载到的路径

mount模块

配置挂载点

fstype:必选项,挂载文件的类型
path:必选项,挂载点
opts:传递给mount命令的参数
src:必选项,要挂载的文件系统
state:必选项present:只处理fstab中的配置absent
 挂载点mounted
 unmounted:卸载

例:

- name: mount mode
  hosts: web2
  tasks:
        - name: mount
          mount:
                fstype: iso9660   # 光盘文件系统类型
                src: /dev/sr0   # 要挂载的
                path: /mnt/ # 挂载点
                state: mounted  # 挂载

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

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

相关文章

【架构基础】高内聚低耦合

软件设计目标:实现需求、易于重用、易于理解、没有冗余。 Dont reinvent the wheel, just realign it. --Anthony J D’ Angelo 高内聚低耦合,是软件工程中判断软件设计好坏的标准。主要评判模块或类的内聚性是否高,耦合度是否低。目的是使…

【图像处理】基于双目视觉的物体体积测量算法研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

TCP的安全和效率机制

目录 0.TCP协议格式 ​编辑 一.确认应答(安全机制) 二.超时重传(安全机制) 1.SYN丢包 2.ACK丢包 三.连接管理(安全机制) 1.三次握手建立连接 ​编辑 2.四次挥手断开连接 3.建立和断开连接 四.滑动窗口(效率机制) 五.流量控制(效率机制) 六.拥塞控制(安全机制) 七…

算法扩展第一次:收集雪花 【hash表,双指针,stl中的map】

算法详解 这道题需要新学的知识一个是双指针,一个是c库中的unordered_map容器 双指针 双指针原先我写过很多这方面的题,但是这道题我一开始是低估了它的难度,而且压根没有想到要用双指针,属于是长见识了,这道题的双…

Virtual box安装Ubuntu1804乱码

Virtual box安装Ubuntu1804乱码 1. 首先检查编码格式 运行以下命令打开locale配置文件: sudo nano /etc/default/locale2. 可能缺少字体,打开终端,先执行更新 sudo apt-get update 接着进入设置,搜索language,进入…

机器学习-搭建轻量级GPT2训练对话

在自己的机器上部署一个GPT简直太酷啦,因为模型数据缘故,所以这个机器人有时候傻傻的。。。 需要安装环境:python3.7 、Transformers4.2.0、pytorch1.7.0、nginx(映射网页文件) 我的系统:MAC m2 Mac默认是…

Jmeter如何安装jp@gc - Ultimate Thread Group插件(终极线程组)

首先明确一点,我们为什么要做压力测试? 压力测试是为了确保系统能够在负载高峰期和长时间运行的情况下保持高性能、稳定和可靠。同时也是软件开发生命周期中不可或缺的一环,帮助开发人员和系统管理员优化和调整系统,以提供卓越的…

2023春期末考试选择题R2-8计算最小生成树总权重详解

题目如图: 分析和计算: 题目给出一个图的邻接矩阵表示,要求求最小生成树的总开销。 根据Kruskal算法,根据邻接矩阵顶点连接情况,收集开销最小的边,直到所有顶点被收集,且无环路,即…

Debian 12 “bookworm“ 发布 - 通用操作系统

Debian 12 “bookworm” 发布 - 通用操作系统 基于 Linux kernel 6.1 LTS,支持 APFS 读写 请访问原文链接:https://sysin.org/blog/debian-12/,查看最新版。原创作品,转载请保留出处。 作者主页:sysin.org Debian 1…

(数组) 1365. 有多少小于当前数字的数字 ——【Leetcode每日一题】

❓1365. 有多少小于当前数字的数字 难度:简单 给你一个数组 nums,对于其中每个元素 nums[i],请你统计数组中比它小的所有数字的数目。 换而言之,对于每个 nums[i] 你必须计算出有效的 j 的数量,其中 j 满足 j ! i 且…

希捷科技:具有周期性价值的全球云存储之王

来源:猛兽财经 作者:猛兽财经 总结: (1)根据Statista的数据,希捷科技是全球硬盘驱动器市场的领导者,在全球拥有约43%的市场份额。 (2)希捷科技的管理层近期已经宣布了一…

Node.js模块化学习笔记

Node.js模块化 模块化雨模块 将一个复杂的程序文件依据一定规则(规范)拆分成多个文件的过程称之为模块化。 其中拆分的每个文件就是一个模块,模块的内部数据是私有的,不过模块可以暴露内部数据以便其他模块使用 模块化项目 编…

Python课期末考试复习

简答 定义函数的规则 1、函数代码块以def关键词开头,后接函数标识符名称和圆括号() 2、任何传入参数和自变量必须放在圆括号中间。圆括号之间可以用于定义参数。 3、函数的第一行语句可以选择性的使用文档字符串用于存放函数说明。 4、函数内容以冒号起始&#xf…

从前序与中序遍历序列构造二叉树

题目链接 从前序与中序遍历序列构造二叉树 题目描述 注意点 inorder.length preorder.lengthpreorder 和 inorder 均 无重复 元素inorder 均出现在 preorderpreorder 保证 为二叉树的前序遍历序列inorder 保证 为二叉树的中序遍历序列 解答思路 前序遍历的首个节点为根节…

[架构之路-211]- 需求- 软架构前的需求理解:ADMEMS标准化、有序化、结构化、层次化需求矩阵 =》需求框架

目录 前言: 一、什么是ADMES: 首先,需求是分层次的: 其次,需求是有结构的,有维度的 再次,不同层次需求、不同维度需求之间可以相互转化(难点、经验积累) 最终,标准…

UnitTest 学习

UnitTest 一、UnitTest 基本使用1. TestCase 测试用例2. TestSuite 和 TestRunner3. TestLoader 测试加载4. Fixture 二、断言与参数化断言参数化 三、测试报告获取项目的绝对路径登录案例跳过 一、UnitTest 基本使用 UnItTest 框架介绍 UnitTest是python自带的一个单元测试框…

HTTP 和 HTTPS 协议原理【网络基础】

文章目录 1. HTTP 的优点2. HTTP 的缺点明文可能会被窃听通信方可能被伪装报文可能被篡改 2.1 弥补 HTTP 的缺点(概述)加密明文通信加密内容加密 验证通信方报文完整性校验 3. HTTPS 协议3.1 SSL/TLS 协议概述3.2 加密机制对称加密非对称加密混合加密 3.…

一文终结SQL 子查询优化

概要 子查询(Subquery)的优化一直以来都是 SQL 查询优化中的难点之一。关联子查询的基本执行方式类似于 Nested-Loop,但是这种执行方式的效率常常低到难以忍受。当数据量稍大时,必须在优化器中对其进行去关联化(Decoor…

深入理解深度学习——Transformer:基础知识

分类目录:《深入理解深度学习》总目录 相关文章: 作为当下最先进的深度学习架构之一,Transformer被广泛应用于自然语言处理领域。它不单替代了以前流行的循环神经网络(recurrent neural network, RNN)和长短期记忆(long short-term memory, …

网络安全入门学习第十七课——PHP数组

文章目录 一、索引数组二、关联数组三、数组定义1、多维数组2、赋值方式3、短数组定义法([ ] PHP 5.4起增加的) 四、访问数组五、遍历数组1、使用 for 循环2、foreach语句遍历 六、合并两个数组1、“”联合运算符2、array_combine 函数 七、数组排序函数八、数组增删…