ansible常用模块介绍

ansible运行模块的两种方式

Ad - Hoc
利用 ansible 命令直接完成管理 主要用于临时命令使用场景
ansible westos -m shell -a 'ls /mnt'
playbook
ansible 脚本 主要用于大型项目场景 需要前期的规划
vim test.yml 
        - hosts: all
          tasks:
          - shell: ls /mnt

 ansible-playbook test.yml

如何查看模块帮助

ansible - doc [ 参数 ] [ 模块 ...]
# 常用参数
- l ## 列出可用模块
- s ## 显示指定模块的 playbook 片段

 ansible-doc  -l

 ansible-doc shell 

 ansible-doc shell -s

ansible命令的常用执行参数

格式
ansible 清单 - m 模块 - a 模块参数
# 常用参数
--version 显示版本
-m module指定模块默认为command模块
-v
详细过程
- vv - vvv 更详细过程
--list显示主机列表也可以用--list-hosts
-k提示输入ssh连接密码默认key认证
-C预执行检测
-T执行命令的超时时间默认10s
- u
指定远程执行的用户
- b
执行 sudo 切换身份操作
-become-user=USERNAME指定sudo的用户
- K
提示输入 sudo 密码

ansible all -m ping

ansible all -m ping -v

ansible westos -m shell -a 'whoami' -u westos -k -b --become-user=westos

以上配置参数都可以再配置文件。ansible.cfg中输入

command模块的使用方法

功能 : 在远程主机执行命令 此模块为默认模块
# 常用参数
chdir执行命令前先进入到指定目录
cmd运行命令指定
creates如果文件存在将不运行
removes 如果文件存在在将运行
free_form 在远程主机中执行的命令此参数不需要加

ansible all -m command -a 'chdir=/mnt pwd'

ansible all -m command -a 'chdir=/mnt pwd creates=/mnt' 

Linux中的很多通配符在command模块中不支持 

shell模块的使用方法

command 功能类似
# 常用参数
chdir 执行命令前先进入到指定目录
cmd 运行命令指定
creates 如果文件存在将不运行
removes 如果文件存在在将运行
free_form 在远程主机中执行的命令此参数不需要加
executable 指定执行环境默认为sh

ansible all -m shell -a " ps ax | grep $$ " -k

ansible all -m shell -a "executable=sh ps ax | grep $$ " -k

ansible all -m shell -a "executable=bash ps ax | grep $$ " -k

scrip模块使用方法

功能 :
ansible 主机中写好的脚本在受控主机中执行
vim ~/.ansible / westos.sh
        !/ bin / bash
        echo $HOSTNAME
ansible all -m script -a "~/.ansible/westos.sh"

copy模块的使用

功能
ansible 主机复制文件到受控主机
# 常用参数
src 源文件
dest 目的地文件
owner 指定目的地文件所有人
group指定目的地文件所有组
mode 指定目的地文件权限
backup=yes 当受控主机中存在文件时备份原文件
content 指定文本内容直接在受控主机中生成文件
ansible all -m copy -a "src=westos.sh dest=/mnt/westos.sh owner=xxx mode=707 backup=yes"
ansible all -m shell -a "ls -l /mnt/westos.sh"

fetch模块的使用方法

功能
从受控主机把文件复制到 ansible 主机 , 但不支持目录
# 常用参数
src 受控主机的源文件
dest 本机目录
flat 基本名称功能
ansible all -m fetch -a "src=/mnt/westos.sh dest=/tmp "
ansible 192.168.91.89 -m fetch -a "src=/mnt/westos.sh dest=/tmp/westosname.sh flat=yes"

file模块的使用方法

功能
设置文件的属性
# 常用参数
path 指定文件名称
state 指定操作状态
                                   touch
建立
                                 absent
删除
                                directory
递归
                                      link
建立软链接
                                    hard建立硬链接
mode
设定权限
owner 设定文件用户
group 设定文件组
src 源文件
dest 目标文件
recurse=yes 递归更改
ansible all -m file -a 'src=/mnt/file1 dest=/mnt/filehard state=hard'
ansible all -m file -a 'path=/mnt/file2 state=touch owner=devops group=xxx mode=777'

压缩及解压模块

archive
# 作用
压缩
# 常用参数
path 打包目录名称
dest 声称打包文件名称
format 打包格式
owner 指定文件所属人
mode 指定文件权限

 ansible all -m archive -a 'path=/etc dest=/opt/etc.tar.gz format=gz owner=xxx mode=700'

un archive
功能
解压缩
# 常用参数
copy 

默认为yes                ansible主机复制文件到受控主机

设定为no               从受控主机中寻找src源文件

remote_src 

功能同copy且相反

设定为yes 表示包在受控主机

设定为no表示包在ansible主机

src 包路径可以使ansible主机也可以使受控主机
dest 受控主机目录
mode 加压后文件权限 <copy=yes>

 ansible all -m unarchive -a "src=/opt/etc.tar.gz dest=/mnt copy=no"

hostname模块

作用
管理主机名称
# 常用参数
name 指定主机名称

ansible 192.168.91.89 -m hostname -a 'name=AAAA.westos.com'

定时任务设定模块

cron
# 作用
计划任务
# 常用参数
minute 分钟
hour 小时
day 
month 
weekday 
name 任务名称
job 任务脚本或命令
disabled 

yes 禁用计划任务

no 启动计划任务

state 
                              absent删除计划任务

ansible all -m cron -a "job='echo hello' name=test disabled=yes"

软件仓库配置模块

yum_repository
# 作用
配置系统软件仓库源文件
# 常用参数
name 指定仓库名称
baseurl 指定源路径
description 指定仓库描述
file 指定仓库文件名称
enabled 仓库是否启用
gpgcheck 仓库是否检测gpgkey
state 

默认值present 建立

absent 为删除

ansible all -m yum_repository -a 'name=AppStream file=westos baseurl=http://192.168.91.88/var/www/html/westos/AppStream gpgcheck=no description="AppStream" enabled=yes state=present'

利用dnf模块管理软件

作用
管理系统中的 dnf 仓库及管理软件
常用参数
name指定包
state指定动作
                                         present安装
                                          latest更新
                                          absent删除
list列出指定信息
                                           httpd
                                         installed
                                               all
                                         available
disable_gpg_check禁用gpgkey检测
enablerepo指定安装包来源
disablerepo禁用安装包来源
ansible all -m dnf -a 'name=httpd state=present enablerepo=AppStream'

service服务管理模块

作用
管理系统服务状态
常用参数
name 指定服务名称
state 指定对服务的动作
                                                   started
                                                    stoped
                                                    restarted
                                                    reloaded
enabled 设定服务开机是否启动
#yes 开启启动
#no 开机不启动
ansible all - m service - a "name = httpd state = started enabled = yes" 

火墙控制模块firewalld

常用参数
zone 火墙的域
service 服务名称
permanent 永久生效
state
                                                       enabled 允许
                                                       disabled 拒绝

immediate 

立即生效

ansible all -m firewalld -a 'zone=public service=http permanent=yes state=enabled immediate=yes'

利用user模块管理用户

作用
模块可以帮助我们管理远程主机上的用户 比如创建用户 修改用户 删除用户 为用户创建密钥对等操作
# 常用参数
name 必须参数用于指定要操作的用户名称
group 指定用户所在的基本组
gourps 指定用户所在的附加组
append 指定添加附加组默认值为no
shell 指定用户的默认 shell
uid 指定用户的 uid
comment 指定用户的注释信息
state 用于指定用户是否存在于远程主机
                             present
建立
                            absent
删除
remove 当删除用户是删除用户家目录,默认值为no
password

此参数用于指定用户的密码。但密码为明文

可以用openssl password -6 '密码'生成加密字符

generate_ssh_key 生成sshkey

ansible all -m user -a 'name=linux group=72 groups=1000 shell=/bin/sh uid=6666 comment="linux user" state=present'

利用group模块管理组

作用
group 模块可以帮助我们管理远程主机上的组
# 常用参数
name 用于指定要操作的组名称
state 用于指定组的状态
                          absent
删除
                         present
建立
gid 用于指定组的gid

ansible all -m group -a 'name=linux gid=2000 state=present'

文件关键行替换

lineinfile
# 常用参数
path 指定要操作的文件
line 指定文本内容 "|+" 表示格式化输入
regexp 使用正则表达式匹配对应的行当替换文本时
## 如果有多行文本都能被匹配
## 则只有最后面被匹配到的那行文本才会被替换
## 当删除文本时 如果有多行文本都能被匹配
## 这么这些行都会被删除
state 

当想要删除对应的文本时需要将state参数的值设置为absent

state的默认值为present

backrefs

当内容无匹配规则时不对文件做任何更改,默认值为no

向后引用regexp变量信息

insertafter

借助insertafter参数可以将文本插入到指定的行”之后

insertafter参数的值可以设置为EOF或者正则表达式

insertbefore

借助insertbefore参数可以将文本插入到指定的行之前

insertbefore参数的值可以设置为BOF或者正则表达式

backup 是否在修改文件之前对文件进行备份
create 当要操作的文件并不存在时是否创建对应的文件
ansible all -m lineinfile -a 'path=/mnt/westos line="hello westos\nhello westos" create=yes'
ansible all -m lineinfile -a 'path=/mnt/westos line="hello linux" create=yes'
ansible all -m lineinfile -a 'path=/mnt/westos  regexp="(h.{4}).*(w.{5})" line="\1" backrefs=yes'

替换文件中的关键字

replace
# 作用
replace 模块可以根据我们指定的正则表达式替换文件中的字符串 文件中所有被匹配到的字符串都会被替换
# 常用参数
path 指定要操作的文件
regexp 

指定一个正则表达式

文件中与正则匹配的字符串将会被替换

replace 指定最终要替换成的字符串
backup 是否在修改文件之前对文件进行备份最好设置为yes

ansible all -m replace -a 'path=/mnt/westos regexp="hello" replace="westos_hello" backup=yes'

利用setup采集被控主机的变量信息

作用
setup 模块用于收集远程主机的一些基本信息
# 常用参数
filter 用于进行条件过滤如果设置仅返回匹配过滤条件的信息
ansible all - m setup - k
ansible all - m setup - a "filter = 'ansible_all_ipv4_addresses' " - k

利用debug显示指定信息

作用
调试模块 用于在调试中输出信息
# 常用参数
msg
调试输出的消息
var:
将某个任务执行的输出作为变量传递给debug 模块
debug 会直接将其打印输出
verbosity
debug 的级别 默认是 0 全部显示

 ansible all -m debug -a 'var="westos"' -e westos="linnnnn"

ansible all -m debug -a 'msg="hello hello"'

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

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

相关文章

【栈】车队

题目&#xff1a; /** 单调栈&#xff1a;存储到终点的时间&#xff0c;需要考虑浮点数* 思路&#xff1a;首先按照距离进行排序&#xff08;目的&#xff1a;如果离终点远的车辆用时比前面的车辆用时短&#xff0c;则是一个车队)* 排序后计算每一辆车辆的时间如果用…

web:[SUCTF 2019]CheckIn(一句话木马,.user.ini)

题目 页面显示 上传文件&#xff0c;随便上传一个文件试试 上传了一个文本&#xff0c;显示失败&#xff0c;不是图片 那就换图片马上传试试 不能包含<?,换一种写法&#xff0c;需要加上GIF89a&#xff0c;进行exif_imagetype绕过 上传成功 这里用.user.ini或者用post传参…

甘草书店:#8 2023年11月22日 星期三「“说一套做一套”的甘草与麦田」

最近与甘草书店的投资方和意向投资方沟通&#xff0c;听取了来自不同领域不同人群的观点。他们讲的都有道理&#xff0c;但他们说的都不是甘草。就像“麦田”成立之前&#xff0c;世间没有“麦田”一样&#xff1b;“甘草”出现之前&#xff0c;世间没有也没有“甘草”。 故事…

力扣116. 填充每个节点的下一个右侧节点指针(详细讲解root根节点的理解)

题目&#xff1a; 给定一个 完美二叉树 &#xff0c;其所有叶子节点都在同一层&#xff0c;每个父节点都有两个子节点。二叉树定义如下&#xff1a; struct Node {int val;Node *left;Node *right;Node *next; } 填充它的每个 next 指针&#xff0c;让这个指针指向其下一个右…

220V工频正弦波逆变器设计

摘 要 与传统逆变器相比&#xff0c;工频正弦波逆变器具有电容电压应力低的优点。但是工频正弦波逆变器存在开关器件电压应力大和开关频率高的缺陷。将SPWM调制策略应用于工频正弦波逆变器&#xff0c;并在不产生电流纹波的条件下实现了最大调制度&#xff0c;不仅能够减小开关…

05.开闭原则(Open Closed Principle)

“你这个人怎么这么轴&#xff1f;让你改改以前的代码怎么和要了你命似的&#xff1f;难道你的能力仅限于此吗&#xff1f;” “你懂什么&#xff1f;我有我的原则&#xff01;我有我的信仰&#xff01;” 一言 开闭原则即&#xff1a;对扩展开放&#xff0c;对修改关闭&#…

D. In Love

贪心&#xff0c;维护最靠左的右端点以及最靠右的左端点 // Problem: D. In Love // Contest: Codeforces - Codeforces Round 905 (Div. 3) // URL: https://codeforces.com/contest/1883/problem/D // Memory Limit: 256 MB // Time Limit: 2000 ms // // Powered by CP Edi…

【从0配置JAVA项目相关环境1】jdk + VSCode运行java + mysql + Navicat + 数据库本地化 + 启动java项目

从0配置JAVA项目相关环境 写在最前面一、安装Java的jdk环境1. 下载jdk2. 配置jdk3. 配置环境变量 二、在vscode中配置java运行环境1. 下载VSCode2. 下载并运行「Java Extension Pack」 三、安装mysql1.官网下载MySQL2.开始安装如果没有跳过安装成功 3.配置MySQL Server4.环境变…

【爬虫】自动下载指定网站全部图片(Java版)

爬虫是一种自动化程序&#xff0c;能够模拟人类的浏览行为&#xff0c;访问网络资源并提取所需数据。它可以通过发送HTTP请求获取网页内容&#xff0c;并对网页进行解析和数据提取。 在大多数时候&#xff0c;提到爬虫我们就会想到 Python&#xff0c;其实 Java 也是可以实现爬…

判断完数(写出部分函数)

例如&#xff1a;本题要求实现一个函数&#xff0c;判断一个自然数是否是完数。如果一个自然数除自身之外的因子和等于它自己&#xff0c;则称该数为完数。例如 6 1 2 3&#xff1b;则6是完数。 函数接口定义&#xff1a; 在这里描述函数接口。&#xff1a;int isPerfect (…

ApplicationContextAware 类

优质博文&#xff1a;IT-BLOG-CN 需求&#xff1a; 使用autowired注入一些对象&#xff0c;但发现不可以直接使用Autowired&#xff0c;因为方法是static的&#xff0c;要使用该方法当前对象也必须是static&#xff0c;正常情况下Autowired无法注入静态的bean&#xff0c;于是…

数据结构与算法编程题44

有向无权图邻接矩阵表示 //参考博客&#xff1a;https://blog.csdn.net/qq_54162207/article/details/117414707#include <iostream> using namespace std;#define Maxsize 100 #define VertexmMaxNum 20 #define ERROR 0 #define OK 1 typedef string VertexType; …

img标签禁止右键点击复制图片等功能

场景描述&#xff1a;在网页中显示图片&#xff0c;但是不想让其他人右键保存图片 会用到一个新的属性&#xff1a;oncontextmenu 代码如下 <img src"./123.png" alt"" oncontextmenu"return false">这样虽然能解决不在当前页右键保存图片…

微信玩具小程序商城开发技巧

小程序已成为许多企业和个人开展业务的重要工具之一。如果你想在玩具行业中打造一个小程序商城&#xff0c;但又没有相关的编程经验&#xff0c;不用担心&#xff01;本文将通过乔拓云平台提供的简单操作步骤&#xff0c;分享给你玩具行业小程序平台搭建的教程。 首先&#xff…

DriveWorks——参数化设计非标定制利器

DriveWorks基本介绍 DriveWorks是一套被 SOLIDWORKS 认可为金牌合作伙伴产品的设计自动化软件。DriveWorks 可自动创建特定于订单的销售文档和 SOLIDWORKS 制造数据。减少重复性任务&#xff0c;消除错误&#xff0c;增加销售额&#xff0c;并在创纪录的时间内交付定制产品。 为…

Linux下的查看文件的命令

1. tail 命令 tail 命令是在 Linux 和类 Unix 系统上用来显示文件末尾内容的命令。它最常用于查看文件的末尾几行内容&#xff0c;通常在日志文件或其他不断更新的文件中使用。 以下是 tail 命令的常用选项和用法&#xff1a; 1.1. 基本用法 tail file_name这将默认显示文件…

python的异常处理批量执行网络设备的巡检命令

前言 在网络设备数量超过千台甚至上万台的大型企业网中&#xff0c;难免会遇到某些设备的管理IP地址不通&#xff0c;SSH连接失败的情况&#xff0c;设备数量越多&#xff0c;这种情况发生的概率越高。 这个时候如果你想用python批量配置所有的设备&#xff0c;就一定要注意这…

top K问题(C语言)

目录 前言 top K问题 模拟数据 建堆 验证&#xff08;简单了解即可&#xff09; 最终代码 调试部分 前言 在大小堆的实现&#xff08;C语言&#xff09;中我们讨论了堆的实际意义&#xff0c;在看了就会的堆排序&#xff08;C语言&#xff09;中我们完成了堆排序&#…

Java利用UDP实现简单的双人聊天

一、创建新项目 首先创建一个新的项目&#xff0c;并命名。 二、实现代码 import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.net.*; import java.io.IOException; import java.lang.String; public class liaotian extends JFrame{ pri…

找丢失号码(桶排序)

题目&#xff1a;小明拿着本院100名校运会选手的号码牌走向操场&#xff0c;号码是101到200.出于道路施工加上下雨&#xff0c;小明摔跤后将号码牌散落在地&#xff0c;小明捡起来发现只有99张号码牌&#xff0c;请你编程帮小明快速找到是什么号码丢失 #include <stdio.h>…