首页 > 系统相关 >Linux模块

Linux模块

时间:2024-10-21 11:33:54浏览次数:6  
标签:文件 主机 信息 ansible 模块 Linux 远程

ansible-doc -l:查看ansible系统的模块
ansible-doc 加模块名 :具体查看那个模块
ansible-doc -s 加模块名 :具体查看那个模块

ansible重要常用模块

5、copy模块功能说名

功能:主要用于将管理主机上的数据信息传送给多台远程主机上
src:
	本地路径文件复制到远程服务器;可以是相对路径,也可以是绝对路径,如果路径是一个目录,将会递归复制,在这种情况下,路径如果“/”结束,只将在该目录下的内容复制到目的地,如果不以“/”结束,目录和目录下所有的内容都会被复制
	
dest:
	文件应该被拷贝到的远程绝对路径信息,如果src是一个目录,dest也必须是目录
	
owner:
	定义所拥有文件/目录的所属用户名称,类似chown命令功能

group:
	定义所拥有文件/目录的属组名称

mode:
	数据文件复制到远程主机,设置数据的权限,就像(0644) 

backup:
	创建备份文件并包含时间戳信息,以便能够还原回原文件信息,在某种情况下原 文件被覆盖错误时,默认配置为no,并且配置指定信息为yes|no

content:
	在文件中添加指定的内容,如果原来文件中有内容,内容会被覆盖

force:
	默认yes,当远端文件内容和源文件内容不同时,将覆盖目标文件,如果为no,文件将只被传输,在目标主机不存在此文件时别名thirsty

remote_src:
	如果设置为yes,表示将远程主机上的数据进行移动操作
	如果设置为no,表示将管理主机上的数据进行移动操作
		说明:copy模块是远端推送数据模块,只能将数据推送到远端主机上,不能实现拉取数据到本地管理主机

格式:

	ansible 172.16.1.31 -m copy -a "src=/oldboy/ dest=/oldboy/ mode=0644"
		将管理端的/oldboy下的数据信息备份到主机ip为31的/oldboy下,并且权限修改为0644
说明:copy模块在复制数据时,如果数据为软连接文件,会将链接文件进行复制

6、file模块功能说明

功能:设置文件属性
src:
	要链接文件的路径(只能应用state=link),创建链接文件时使用

path:
	文件路径管理 :别名方式:dest,name
owner:
	定义所拥有文件/目录的所属用户名称

group:
	定义所拥有文件/目录的所属组的名称,

mode:
	定义文件或目录的权限信息

recurse:
	递归的设置文件的属性,只对目录有效

state:
	如果指定参数directory:所有不存在的子目录将会被创建;创建一个空目录
		如果指定参数为file:如果文件不存在将不能被创建
		如果指定参数为link:符号链接将会被创建或更改
		如果指定参数为hard:便会创建出硬链接
		如果指定参数为absent:目录将会被递归删除以及文件,而链接将被取消链接,如果指定参数为touch:如果路径不存在将创建一个空文件,如果文件或目录存在,将接收更新的文件访问和修改时间
说明:file模块主要用于创建文件或目录数据,以及多存在的文件或目录权限属性进行修改管理;利用recurse参数可以实现递归修改目录中数据权限,但是目录如果有链接文件,无法对链接文件进行递归修改
语法格式:
	ansible oldboy -m file -a "dest=/www state=absent	

8、service:模块功能

功能:用于管理服务运行状态

参数:

enabled(no  yes) 
	设置服务是否开机自启动,如果参数不指定,原有服务开机自启动状态进行保留
name(required)
	设置要启动/停止服务名称
	
state    reloaded   平滑重启
		restarted    重启
		started  		启动
		stopped		停止
格式:  ansible oldboy -m service -a "name=crond state=started”

10、group模块功能

功能:远程批量创建用户组信息
参数:gid	指定创建的组ID信息
	 name:指定创建组名称信息
	state	absent:删除指定的用户组
			present:创建指定的用户组
格式:ansible oldboy -m group -a "name=oldboy_56 gid=1056"

11、user模块功能

功能:远程批量创建用户信息
参数:	name	指定用户名信息
		UID		指定用户UID信息
		group	指定用户主要属于哪个组
		groups	指定用户属于哪个附加组信息
		shell		指定使用的命令解释器 (/bin/bash  /bin/nologin)
create_home  是否创建家目录信息 
		home	指定家目录创建在什么路径   默认/home
		password设置密码时不能使用明文方式,只能使用密文方式,可以给用户设置密				  码,还可以给用户修改密码	
		设置密文方法:ansible all -m debug -a "msg={{ 'mypassword' | password_hash('sha512', 'mysecretsalt') }}"

7、yum模块功能说明

功能:yum包管理模块

参数

name:
	需要安装的软件包名称信息,或包的版本标识信息

state:
	是否安装(install),或者移除一个包(absent or  removed  将软件进行卸载)
		present/installed  将软件进行安装3
			latest:安装最新的软件   yum update

格式:

	ansible oldboy -m yum -a "name=httpd-tools state=installed"

10、cron模块功能

功能:定时任务模块
参数:job	和设置定时任务相关参数
	  name	设置定时任务注释信息
	  state	absent删除指定定时任务
	  disabled   yes将指定定时任务进行注释    no:取消注释
	分(minute) 时(hour) 日(day) 月(month) 周(weekday)

格式:ansible oldboy -m cron -a "name='cron-id03 ntpdate time' minute=*/5 job='/usr/sbin/ntpdate ntp1.aliyun.com &>/dev/null'"

14、unarchive 模块功能

用于解压文件

参数:

copy:默认为yes,当copy=yes,那么拷贝的文件是从ansible主机复制到远程主机上的,如果设置为copy=no ,那么会在远程主机上寻址src源文件
src:源路径,可以是ansible主机上的路径,也可以是远程主机上的路径,如果是远程主机上的路径,则需要设置copy=no
dest:远程主机上的目标路径
mode:设置解压缩后的文件权限
格式:ansible pms -m unarchive -a 'src=/srv/tomcat8/apache-tomcat-8.0.29.tar.gz dest=/usr/local copy=no mode=0755'

9、mount模块功能

功能:用于批量管理主机进行挂载操作
参数:fstype:指定挂载的文件系统类型
	  opts:指定挂载的参数信息
	  path:定义一个挂载点信息
	  src:定义设备文件信息
	  state  absent  会进行卸载,也会修改fstab文件信息
			unmounted  会进行卸载,不会修改fstab文件
			present	不会挂载,只会修改fstab文件
			mounted		会进行挂载,会修改fstab文件
格式:  ansible oldboy -m mount -a "src=172.16.1.31:/data/  path=/mnt fstype=nfs state=present"

ping command shell scripts ping

1.ping模块

Ansible最基础的模块是ping模块,主要用于判断远程客户端是否在线,用于ping本身服务器,返回值是changed、ping

使用Ansible ping服务器状态,代码为ansible -k all -m ping

因为我的ansible服务器已经做了免密登录,所以不用到-k参数,关于ansible的各个参数在ansible原理篇里详解

结果如下:

2、command模块功能

功能:执行一个命令在远程节点上

作用:批量管理主机的模块

参数说明

chdir:
	在执行命令之前,通过cd命令进入指定目录中
	
creates:
	定义一个文件是否存在,如果不存在,则运行相应命令;如果存在跳过此步骤
	
free_form:
	参数信息中可以输入任何系统命令信息,实现远程管理

removes:
	定义一个文件是否存在,如果存在运行相应的命令;如果不存在跳过此步骤
说明:command模块为基本命令模块,默认可以不用-m指定模块信息,并且需要注意在使用command模块执行远程命令时,命令中不能包含变量类似$HOME和参数类似“<”>“|”,“&”等信息,否则命令将不会被识别,

command模块为基本命令模块,可以省略不用指定
格式:
ansible oldboy -m command -a "hostname"

3、shell模块功能说明(类似command模块升级版)--万能模块

功能:执行一个命令在远程节点上

参数说明

chdir:
	在执行命令前,通过cd命令进入指定目录中

creates:
	定义一个文件是否存在,如果不存在,则运行相应的命令;如果存在,跳过此步骤

free_from:
	参数信息中可以输入任何系统命令信息,实现远程管理
	
removes:
	定义一个文件是否存在,如果存在,运行相应的命令;不存在跳过此步骤
说明:shell模块视为基本命令模块,可以执行脚本信息,当相应脚本文件需要存在与远程主机节点上,并且shell模块不受变量和参数等影响,都有可以进行识别
格式:
ansible oldboy -m copy -a "src=/server/scripts/aa.sh dest=/server/scripts/ mode=ugo+x":将管理节点编写好的脚本批量推送到远程节点主机并修改权限为执行能力
ansible oldboy -m shell -a "/server/scripts/aa.sh":远程运行脚本文件
补充:利用shell模块实现批量执行远程主机脚本时,脚本必须在远程主机上存在,并且授权为执行权限

shell模块详解:

chdir:执行命令前,切换到该目录
creates:当该文件存在时,不执行该步骤
executable:使用shell环境执行脚本
free_from:需要执行的脚本
removes:当该文件不存在时,不执行该步骤
warn:如果在ansible.cfg中存在告警,如果设定了false,不会告警此行

4、script模块功能说明

功能说明:远程节点上运行本地脚本模块

参数说明:

creates:
	定义一个文件是否存在,如果不存在,则运行相应的命令;如果存在跳过此步骤
	
free_from:
	参数信息中可以输入任何系统命令信息,实现远程管理

removes:
	定义一个文件是否存在,如果存在,则运行相应的命令;如果不存在跳过此步骤

格式:

ansible oldboy -m script -a "/server/scripts/aa.sh"
远程运行脚本文件
补充:利用script模块实现批量执行远程主机脚本时,脚本不用在远程主机上存在和授权

12、fetch模块功能

功能:从远程主机拉取过来的文件保存在本地

dest:将远程主机拉取过来的文件保存在本地的路径信息
src:指定远程主机要拉取的文件信息,只能拉取文件
flat:默认设置为no,如果设置为yes,将不显示远程主机的信息

13、template模块功能

功能:作为文件模块,进行文档内变量的替换的模块,它的每次使用都会被ansible标记为“changed”状态;解析文档内的变量信息

参数:

backup:如果原目标文件存在,则先备份目标文件
src:文件的路径,可以是绝对路径和相对路径
dest:将模块渲染到远程主机上的位置
force:是否强制覆盖,默认为yes
owner:目标文件属主
group:目标文件属组
mode:目标文件的权限模式

16、setup模块功能

功能:主要用于获取主机信息,
filter=ansible_hostname  查找主机名
ansible test -m setup -a 'filter=ansible_*_mb'

常见主机信息:

ansible_all_ipv4_addresses:			仅显示ipv4的信息。
ansible_devices:						仅显示磁盘设备信息。
ansible_distribution:					显示是什么系统,例:centos,suse等。
ansible_distribution_major_version:	显示是系统主版本。
ansible_distribution_version:			仅显示系统版本。
ansible_machine:						显示系统类型,例:32位,还是64位。
ansible_eth0:							仅显示eth0的信息。
ansible_hostname:						仅显示主机名。
ansible_kernel:						仅显示内核版本。
ansible_lvm:							显示lvm相关信息。
ansible_memtotal_mb:					显示系统总内存。
ansible_memfree_mb:					显示可用系统内存。
ansible_memory_mb:						详细显示内存情况。
ansible_swaptotal_mb:					显示总的swap内存。
ansible_swapfree_mb:					显示swap内存的可用内存。
ansible_mounts:						显示系统磁盘挂载情况。
ansible_processor:						显示cpu个数(具体显示每个cpu的型号)。
ansible_processor_vcpus:				显示cpu个数(只显示总的个数)。

标签:文件,主机,信息,ansible,模块,Linux,远程
From: https://www.cnblogs.com/megshuai/p/18489110

相关文章

  • Linux安装配置NFS实现目录挂载
    什么是NFSNFS(NetworkFileSystem)即网络文件系统,它允许网络中的计算机之间通过网络共享资源。将NFS主机分享的目录,挂载到本地客户端当中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,在客户端端看起来,就像访问本地文件一样。RPC,基于C/S模型。程序可以使用这个协......
  • Linux期末考试选择题题库
    在创建Linux分区时,一定要创建(D )两个分区A. FAT/NTFS  B. FAT/SWAP  C. NTFS/SWAP  D.SWAP/根分区在Red Hat Linux 9中,系统默认的(A)用户对整个系统拥有完全的控制权。A. root  B. guest  C. administrator  D.supervistor.当登录Linux时,一个具有唯一......
  • linux系统有什么优缺点
    Linux系统的优缺点包括:1、高度可定制;2、安全性高;3、硬件兼容性强;4、学习曲线陡峭;5、软件生态相对较弱。Linux系统以其开源和自由的特点吸引了大量的开发者和企业用户。它提供了强大的安全性和硬件兼容性,但同时,新手可能会觉得学习曲线陡峭。此外,与Windows和macOS相比,它的软件生态......
  • Linux内核文件系统-虚拟文件系统-文件操作
    建议点击这里查看个人主页上的最新原文作者:陈孝松主页:chenxiaosong.com哔哩哔哩:陈孝松课程:chenxiaosong.com/courses博客:chenxiaosong.com/blog贡献:chenxiaosong.com/contributions邮箱:[email protected]交流群:544216206,点击查看群介绍点......
  • Linux | CentOS7安装Java17的详细步骤
    步骤1:更新系统在安装Java之前,确保系统包是最新的。sudoyumupdate-y步骤2:下载Java17从Oracle官方网站或AdoptOpenJDK下载Java17。如果使用OracleJDK,可以到Oracle网站下载。如果使用AdoptOpenJDK,可以使用以下命令:wgethttps://github.com/adoptium/temurin17-bina......
  • 0-1新手小白Linux安装细节注意项
    一、发行版Linux有很多发行版,比较知名的有ReadHat、Debian、arche、Android等分支。包括所见的大多数发行版也都以这些为基础和衍生出来的版本,比如Centos是ReadHat的一个分支,Ubunut是Debian的一个分支。这里你想要安装的Linux可以是任何版本。他们的安装方法基本都大同小异,除......
  • linux命令
    linux命令1.远程连接linux1.1windows的指令终端连接linux打开终端语法:ssh用户名@ip地址比如:[email protected]等远程工具2.常用指令#远程登录linux系统sshroot@ip地址#断开连接exit#重启系统reboot或者shutdown-rnow#关机指令shutdown......
  • 【笔记】CSE 365 - Fall 2024之Linux Luminarium(pwn.college)
    【笔记】CSE365-Fall2024之LinuxLuminarium(pwn.college)HelloHackers本模块将教你与命令行交互的基础知识!命令行允许您执行命令。当您启动终端时,它将执行命令行“shell”,如下所示:hacker@dojo:~$这称为“prompt”,它会提示您输入命令。让我们来看看这里发生了什么:提示......
  • Linux DMA Engine framework(2)_功能介绍及解接口分析
    1.前言从我们的直观感受来说,DMA并不是一个复杂的东西,要做的事情也很单纯直白。因此Linuxkernel对它的抽象和实现,也应该简洁、易懂才是。不过现实却不甚乐观(个人感觉),Linuxkerneldmaengineframework的实现,真有点晦涩的感觉。为什么会这样呢?如果一个软件模块比较复杂、晦涩,要......
  • Linux DMA Engine framework(3)_dma controller驱动
    1.前言本文将从provider的角度,介绍怎样在linuxkerneldmaengine的框架下,编写dmacontroller驱动。2.dmacontroller驱动的软件框架设备驱动的本质是描述并抽象硬件,然后为consumer提供操作硬件的友好接口。dmacontroller驱动也不例外,它要做的事情无外乎是:1)抽象并控制DMA控......