Ansible中常用模块

news2024/9/28 3:24:49

目录

一、Ansible实现管理的方式

二、Ad-Hoc执行方式中如何获得帮助

三、Ansible命令运行方式及常用参数

四、Ansible的基本颜色代表信

五、Ansible中的常用模块

1、command模块

2、shell模块、script模块

3、copy模块、fetch模块

4、file模块

5、archive模块、unarchive模块

6、hostname模块、cron模块


 

一、Ansible实现管理的方式

Ad-Hoc 利用ansible命令直接完成管理,主要用于临时命令使用场景
playbook ansible脚本,主要用于大型项目场景,需要前期的规划

二、Ad-Hoc执行方式中如何获得帮助

ansible-doc 显示模块帮助的指令
格式
ansible-doc [参数] [模块...]

常用参数
-l   列出可用模块
-s   显示指定模块的playbook片段
vim test.yml
cat test.yml
ansible-playbook test.yml

ansible-doc
ansible-doc -l | wc -l
ansible-doc -l | grrep shell

 

三、Ansible命令运行方式及常用参数

参数功能
-i指定hosts文件路径,默认在/etc/ansible/hosts
-m指定使用的module名称,默认command模块
-a指定模块参数
-k(小写)提示输入ssh密码,并非基于ssh密钥认证
-K(大写)提示输入sudo密码
-b使用sudo执行命令
-become-user=指定sudo的用户
-f,-forks=NUMNUM默认是整数5,指定fork开启同步进程的个数
-u指定远程主机的执行用户
-v详细模式,如果执行成功,输出详细结果,-vv -vvv更详细过程
-C预执行检测
-T执行命令的超时时间,默认10s
--list显示主机列表,也可以用--list-hosts
--version显示版本
ansible --version
ansible all -m shell -a 'whoami' -C
ansible all -m shell -a 'whoami' -u test
ansible all -m shell -a 'whoami' -utest
ansible all -m shell -a 'whoami'
ansible all -m shell -a 'whoami' -b -become-user=yyl
ansible all -m shell -a 'whoami' -b -become-user=yyl -K

 

 

四、Ansible的基本颜色代表信

绿色执行成功但未对远程主机做任何改变
黄色执行成功并对远程主机做改变
红色执行失败

五、Ansible中的常用模块

1、command模块

在远程主机执行命令,此模块为默认模块

常用参数功能
chdir执行命令前先进入到指定目录
cmd运行命令指定
creates如果文件存在将不运行
removes如果文件存在将运行
ansible all -m command -a 'chdir=/mnt pwd'
ansible all -m command -a 'chdir=/mnt cmd=pwd'
ansible all -m command -a 'chdir=/mnt  creates=/etc/passwd cat passwd'
ansible all -m command -a 'chdir=/mnt  removes=/etc/passwd cat passwd'
ansible all -m command -a 'chdir=/mnt  removes=/mnt/file cat passwd'
ansible all -m command -a 'chdir=/mnt touch file'
ansible all -m command -a 'chdir=/mnt  creates=/mnt/file pwd'
ansible all -m command -a 'chdir=/mnt  removes=/mnt/file pwd'

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

ansible all -m command -a "chdir=/mnt touch file{1..10}"

 

2、shell模块、script模块

(1)shell模块
shell模块与command模块类似

常用参数功能
chdir执行命令前先进入到指定目录
cmd运行命令指定
creates如果文件存在将不运行
removes如果文件存在将运行
executable指定执行环境,默认为sh
ansible all -m shell -a 'chdir=/mnt/ touch file{1..3}'
ansible all -m shell -a 'chdir=/mnt/ ls -ld /mnt'
ansible all -m shell -a 'chdir=/mnt/ ls -lR /mnt'

ansible all -m shell -a 'ps ax | grep $$'
ansible all -m shell -a 'executable=/bin/bash ps ax | grep $$'

(2)script模块
在ansible主机中写好的脚本在受控主机中执行

vim test.sh
cat test.sh
ansible all -m script -a "test.sh"
ansible all -m shell -a 'chdir=/mnt/ ls -lR /mnt'

3、copy模块、fetch模块

(1)copy模块
从ansible主机复制文件到受控主机

参数功能
src源文件
dest目的地文件
owner指定目的地文件所有人
group指定目的地文件所有组
mode指定目的地文件权限
backup=yes当受控主机中存在文件时备份原文件
content指定文本内容直接在受控主机中生成文件

复制当前目录的test.sh到受控主机的/mnt下,文件所有人为yyl,权限为755 

ansible all -m copy -a 'src=test.sh dest=/mnt/ owner=yyl mode=755'
ansible all -m shell -a 'chdir=/mnt/ ls -lR /mnt'

在ansible主机上修改文件内容,开启备份,再次发送  先修改一下文件

ansible all -m copy -a 'src=test.sh dest=/mnt/ owner=yyl mode=755 backup=yes'
ansible all -m shell -a 'chdir=/mnt/ ls -lR /mnt'

 直接输入文件内容,在受控主机上生成文件

ansible all -m copy -a "content='hello westos\nhello linux\n' dest=/mnt/test.sh owner=yyl mode=755"
ansible all -m shell -a 'chdir=/mnt/ ls -lR /mnt '

(2)fetch模块
从受控主机把文件复制到ansible主机,但不支持目录

参数功能
src受控主机的源文件
dest本机目录
flat基本名称功能,单纯只要文件,不要路径的层层目录
ansible all -m fetch -a "src=/mnt/test.sh dest=/home/ale/.ansible"

ansible all -m fetch -a "src=/mnt/test.sh dest=/home/ale/.ansible/ flat=yes"

4、file模块

设置文件的属性

参数功能
path指定文件名称
state指定操作状态
touch:建立
absent:删除
directory:递归目录
link:建立软链接
hard:建立硬链接
mode设定权限
owner设定文件用户
group设定文件组
src源文件
dest目标文件
recurse=yes递归更改
ansible all -m shell -a 'rm -fr /mnt/*'
ansible all -m shell -a 'chdir=/mnt/ ls -lR /mnt '

创建test.sh文件 

ansible all -m file -a 'path=/mnt/test.sh state=touch'
ansible all -m shell -a 'chdir=/mnt/ ls -lR /mnt '

删除 

ansible all -m file -a 'path=/mnt/test.sh state=absent'
ansible all -m shell -a 'chdir=/mnt/ ls -lR /mnt '

创建目录 

ansible all -m file -a 'path=/mnt/westos state=directory'
ansible all -m shell -a 'chdir=/mnt/ ls -lR /mnt '

ansible all -m file -a 'path=/mnt/westos/file1 state=touch'
ansible all -m shell -a 'chdir=/mnt/ ls -lR /mnt '

 递归更改目录权限

ansible all -m file -a 'path=/mnt/westos state=directory mode=777 recurse=yes'
ansible all -m shell -a 'chdir=/mnt/ ls -lR /mnt '

 软连接

ansible all -m file -a 'src=/mnt/file dest=/mnt/yyl state=link'
ansible all -m shell -a 'chdir=/mnt/ ls -lR /mnt '

硬链接

ansible all -m file -a 'src=/mnt/file dest=/mnt/yyl1 state=hard'
ansible all -m shell -a 'chdir=/mnt/ ls -lR /mnt '

 

5、archive模块、unarchive模块

(1)archive模块——压缩

参数功能
path打包目录名称
dest声称打包文件名称
format打包格式
owner指定文件所属人
mode指定文件权限
ansible all -m archive -a "path=/mnt dest=/mnt/mnt.tar.gz format=gz owner=yyl mode=700"
ansible all -m shell -a 'chdir=/mnt/ ls -lR /mnt '

 

(2)unarchive模块——解压缩

copy默认为yes,从ansible主机复制文件到受控主机
设定为no,从受控主机中寻找src源文件
remote_src功能同copy且相反
设定为yes表示包在受控主机
设定为no表示包在ansible主机
src压缩文件的路径
dest受控主机目录
mode解压后文件的权限<copy=yes>
tar zcf ansible.tar.gz  .
ls
ansible all -m unarchive -a 'src=./ansible.tar.gz dest=/mnt copy=yes'
ansible all -m shell -a 'chdir=/mnt/ ls -lR /mnt '

 

 提前在vm1,2上压缩一个不被限制的gz包 

ansible all -m unarchive -a 'src=/mnt/file.tar.gz  dest=/mnt copy=no'
ansible all -m shell -a 'chdir=/mnt/ ls -lR /mnt '

6、hostname模块、cron模块

(1)hostname模块
管理主机名称
常用参数:name:指定主机名称

ansible 192.168.67.112 -m hostname -a 'name=vm22'
ansible 192.168.67.112 -m shell -a 'hostname'
ansible 192.168.67.112 -m hostname -a 'name=vm1'
ansible 192.168.67.112 -m shell -a 'hostname'

 

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

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

相关文章

FPGA_Signal TapII 逻辑分析仪 在线信号波形抓取

FPGA_Signal TapII 逻辑分析仪 在线信号波形抓取 由于一些工程的仿真文件不易产生&#xff0c;所以我们可以利用 quartus 软件自带的 SignalTap 工具对波形进行抓取 对各个信号进行分析处理&#xff0c;让电子器件与FPGA进行正常通讯工作&#xff0c;也验证所绘制的波形图是否一…

Spring面试题:(一)IoC,DI,AOP和BeanFactory,ApplicationContext

IoC&#xff0c;DI&#xff0c;AOP思想 IOC就是控制反转&#xff0c;是指创建对象的控制权的转移。以前创建对象的主动权和时机是由自己把控的&#xff0c;而现在这种权力转移到Spring容器中&#xff0c;并由容器根据配置文件去创建实例和管理各个实例之间的依赖关系。对象与对…

NSSCTF做题第十页(1)

[GXYCTF 2019]禁止套娃 看源代码也没什么东西&#xff0c;扫一下看看 发现了git泄露 话不多说直接开整 下载下来了 flag.php 还是代码审计 <?php include "flag.php"; echo "flag在哪里呢&#xff1f;<br>"; if(isset($_GET[exp])){ if (!preg_…

怎么看电脑有几个cpu?还有cpu是几核的?

一、怎么查看电脑有几个cpu 电脑CPU是电脑的核心&#xff0c;CPU是中央处理器&#xff0c;是电脑进行线程调度的关键&#xff0c;可以通过查看电脑CPU性能个数可以判定一个电脑的性能。今天小编介绍下如何查看电脑CPU个数。 简单的方式直接查看CPU个数。启动电脑后&#xff0c;…

喜讯!合合信息顺利通过CMMI3级评估

近日&#xff0c;在擎标顾问团的咨询辅导下&#xff0c;上海合合信息科技股份有限公司&#xff08;简称“合合信息”&#xff09;顺利通过了CMMI3级评估。CMMI是国际上最流行、最实用的一种软件生产过程标准和软件企业成熟度等级认证的标准&#xff0c;通过该认证表明企业在开发…

Cesium笔记(0):Cesium简介和本地运行

一、Cesium介绍 是国外一个基于JavaScript编写的使用WebGL的地图引擎开源程序&#xff0c;可以免费用于商业和非商业 二、特点 支持3D,2D,2.5D形式的地图展示可以自行绘制图形&#xff0c;高亮区域&#xff0c;并提供良好的触摸支持支持绝大多数的浏览器和mobile动态地理空间…

【Python百练——第2练】使用Python做一个猜数字小游戏

&#x1f490;作者&#xff1a;insist-- &#x1f490;个人主页&#xff1a;insist-- 的个人主页 理想主义的花&#xff0c;最终会盛开在浪漫主义的土壤里&#xff0c;我们的热情永远不会熄灭&#xff0c;在现实平凡中&#xff0c;我们终将上岸&#xff0c;阳光万里 ❤️欢迎点…

洛谷 B2009 计算 (a+b)/c 的值 C++代码

目录 题目描述 AC Code 切记 题目描述 题目网址&#xff1a;计算 (ab)/c 的值 - 洛谷 AC Code #include<bits/stdc.h> using namespace std; int main() {int a,b,c;cin>>a>>b>>c;cout<<(ab)/c<<endl;return 0; } 切记 不要复制题…

实战之巧用header头

案例&#xff1a; 遇到过三次 一次是更改accept&#xff0c;获取到tomcat的绝对路径&#xff0c;结合其他漏洞获取到shell。 一次是更改accept&#xff0c;越权获取到管理员的MD5加密&#xff0c;最后接管超管权限。 一次是更改accept&#xff0c;结合参数获取到key。 这里以越…

vscode免密码认证ssh连接virtual box虚拟机

文章目录 安装软件virtual box配置vscode配置创建并传递密钥连接虚拟机最后 安装软件 安装vscode和virtual box&#xff0c;直接官网下载对应软件包&#xff0c;下载之后&#xff0c;点击执行&#xff0c;最后傻瓜式下一步安装即可 virtual box配置 创建一个仅主机网络的网卡 …

【Linux】第七站:vim的使用以及配置

文章目录 一、vim1.vim的介绍2.vim基本使用3.vim的命令模式常用命令4.底行模式 二、vim的配置 一、vim 1.vim的介绍 vim编辑器&#xff0c;用来文本编写&#xff0c;可以写代码 它是一个多模式的编辑器 它有很多的模&#xff0c;不过我们暂时先只考虑这三种模式 命令模式插入模…

Java基础知识之反射机制详解

一、什么是反射机制? 反射机制是指在运行时动态地获取类的信息,并能够通过这些信息对类的对象进行操作。Java中的反射机制包括获取类信息、获取成员信息、创建对象、调用方法等操作。通过反射机制,我们可以在运行时动态地了解类的结构、属性和方法等信息,从而实现对类的动态…

JavaScript简介:探索Web开发中的魔力

目录 历史与发展 特点与优势 特点与功能 简单易学 客户端脚本语言 跨平台与兼容性 应用领域 总结 JavaScript是一种高级的、解释型的编程语言&#xff0c;用于在网页上实现交互和动态效果。它广泛应用于前端开发中&#xff0c;是构建现代Web应用的核心技术之一。JavaScrip…

宠物用品小程序

近年来&#xff0c;越来越多的人选择将宠物视为家庭的一员&#xff0c;为宠物购买各种用品成为了一项重要的消费活动。因此&#xff0c;宠物用品小程序应运而生&#xff0c;为消费者提供了一个便捷的购买平台&#xff0c;同时也为宠物带来了更加幸福的生活。 登录乔拓云平台进入…

【Java 进阶篇】Java登录案例详解

登录是Web应用程序中常见的功能&#xff0c;它允许用户提供凭证&#xff08;通常是用户名和密码&#xff09;以验证其身份。本文将详细介绍如何使用Java创建一个简单的登录功能&#xff0c;并解释登录的工作原理。我们将覆盖以下内容&#xff1a; 登录的基本概念创建一个简单的…

STM32:使用蓝牙模块

一、蓝牙概要 蓝牙是一种常见的无线通信协议&#xff0c;通常用于短距离通信。蓝牙分为经典蓝牙和低功耗蓝牙(BLE)。经典蓝牙通常用于需要持续传输数据的设备&#xff0c;比如蓝牙耳机等。低功耗蓝牙通常用于只需要间歇性传输数据的设备&#xff0c;比如运动手环。 蓝牙…

C语言——判断 101-200 之间有多少个素数,并输出所有素数

完整代码&#xff1a; // 判断 101-200 之间有多少个素数&#xff0c;并输出所有素数 #include<stdio.h>//判断一个数n是否为素数 int isPrimeNumber(int n){//1不是素数if (n1){return 0;}for (int i 2; i <(n/2); i){//当有n能被整除时&#xff0c;不是素数if ((n…

Jenkins项目部署

使用jenkins部署项目 简易版使用jenkins部署项目 将war包部署到tomcat中 将已有的war包部署到tomcat中(jenkins与tomcat在同一台主机) 点击Jenkins主页的新建任务 输入任务名称 选择构建一个自由风格的软件项目后点击确定 在构建内添加构建步骤&#xff0c;选择执行shell 输入…

RT-Thread内核——内核基础(上)

1、内核简介 内核是操作系统的核心&#xff0c;是操作系统最基础也是最重要的部分&#xff0c;主要负责系统的线程、线程间通信、系统时钟、中断以及内存等。其架构图如下&#xff1a; 2、线程调度 线程是RT-Thread操作系统中最小的调度单位&#xff0c;线程调度算法的基于…

线性代数 第二章 矩阵

一、概念 mxn个数排成的m行n列的表格 二、运算法则 三、初等变换 &#xff08;1&#xff09;用非零常数k乘矩阵的某一行&#xff08;列&#xff09;&#xff1b; &#xff08;2&#xff09;互换矩阵某两行&#xff08;列&#xff09;的位置&#xff1b; &#xff08;3&am…