ansible模块简介及实验

文章目录

模块功能简表:

模块 功能 选项
setup 用来可以获取被管理主机的系统信息和变量 "filter"进行过滤显示指定信信息; "gather_subset"指定要获取的具体信息名称
command 无法执行变量和shell的特殊符号
shell 在远程主机上使用 /bin/sh 执行命令
script 远程服务器上执行本地脚本
copy 将本地文件拷贝到远程服务器
fetch 将远程服务器的文件复制到本地ansible主机中
file 管理远程主机上的文件属性和软硬连接功能
archive 在远程主机上完成打包压缩功能
unarchive 解压本地压缩包到远程服务器上 copy=yes”,将解压 ansible 服务器端的压缩包到远程服务器上; “copy=no”,将解压远程主机上的压缩包到远程主机指定路径下;
hostname 用于修改远程主机名 name=NAME01”,修改远程主机名;
cron 用于设置远程主机计划任务和功能
yum 通过配置state定义安装或者删除指定的软件 state=present”,安装指定的软件;"state=absent",卸载指定的软件;
service 管理服务的启动和关闭 state=stopped”,关闭服务;"state=restarted",重启服务;"state=started",启动服务;
user 用于管理远程主机的操作系统用户功能 name=NAME system=yes state=absent remove=yes”,删除用户;"name=NAME system=yes",创建用户;
group 管理远程主机操作系统用户组功能 name=NAME system=yes”;创建用户组; “name=NAME state=absent”;删除用户组

*ansible 中模块众多, 使用模块前想想好自己的业务需要场景以及原生命令的使用细节,然后查询 ansible 是否有对应的功能模块,根据 ansible-doc 自己的需求找到对应的实现选项进进测试验证。不要刻意记忆具体选项,有使用经验和文档参考即可。

ansible模块帮助命令

ansible-doc -s ping  #查看指定模块帮助用法 
ansible-doc ping 	 #查看指定模块帮助用法 
ansible-doc -l 		 #列出所有模块 

常用模块帮助文档参考

https://docs.ansible.com/ansible/latest/modules/modules_by_category.html


模块实验:

setup模块

功能:

setup 模块可以获取被管理主机的系统信息和变量

实验内容:

使用 filter 和gather_subsent进行信息过滤和指定显示信息

实验步骤:

1、选项filter 进行信息过滤

在这里插入图片描述

2、选项gether_subset 指定要获取的具体信息名称

在这里插入图片描述

command模块

功能:

在远程主机执行命令,此为默认模块,可忽略-m选项

注意:

此命令不支持 $VARNAME < > | ; & 等,用shell模块实现

实验:

使用command模块在远程主机上执行非特殊字符非shell命令

步骤:

1、使用command查看远程主机的IP:

在这里插入图片描述

2、command 命令并非使用 shell 执行,因此变量 和 shell 的特殊符号无法使用

在这里插入图片描述

shell

功能:

和command相似,用shell执行命令,该模块可以在远程主机上使用 /bin/sh 执行命令。

注意:

调用bash执行命令 类似"cat /tmp/test.md | awk -F‘|’ ‘{print $1,$2}’ &> /tmp/example.txt"这些复杂命令,即使使用shell也可能会失败,解决办法:写到脚本时,copy到远程,执行,再把需要的结果拉回执行命令的机器。

实验内容:

在远程主机上使用/bin/sh执行命令

实验步骤:

1、导入远程主机上的cpu信息至txt文档中并查看

在这里插入图片描述

script模块

功能:

在远程主机上运行ansible服务器上的脚本

实验内容:

在本地主机上创建义个脚本并在远程主机上运行

实验步骤:

1、创建一个shell脚本

在这里插入图片描述

2、将本地脚本在远程服务器上执行:

在这里插入图片描述

copy模块

功能:

从ansible服务器主控端复制文件到远程主机

实验内容:

使用 copy 模块拷贝本地文件到远程服务器

实验步骤:

1、选定一个要拷贝的文件

在这里插入图片描述

2、拷贝选定的本地文件到远程服务器并重命名

在这里插入图片描述

3、查看拷贝到远程主机上重命名的文件

在这里插入图片描述

fetch模块

功能:

从远程主机提取文件至ansible的主控端,copy相反目前不支持目录。

实验内容:

提取远程主机上一个文件至本地主机中

实验步骤:

1、选定远程主机上名为index.html的文件

在这里插入图片描述

2、将远程服务器的文件复制到本地 ansible 主机中并重命名

在这里插入图片描述

3、查看复制到本地主机上的重命名文件

在这里插入图片描述

file模块

功能:

设置文件属性、创建软硬连接

实验内容:

设置文件的权限

实验步骤:

1、设置index.html文件的属性

在这里插入图片描述

2、创建一个文件的软链接

在这里插入图片描述

3、查看已创建的软连接

在这里插入图片描述

archive模块

功能:

打包压缩

实验内容:

在远程主机上打包压缩一个文件

实验步骤:

1、选定远程主机上的一个要压缩的文件

在这里插入图片描述

2、选择打包工具为gz 权限为777

在这里插入图片描述

3、查看远程主机上压缩后的文件

在这里插入图片描述

unarchive模块

功能:

解包解压缩、解压文件模块

实验内容:

实验解压本地主机端的压缩包到远程服务器上

选项"copy=yes"

实验步骤:

1、在本地主机上导入一个网址至html文件中打包该文件并重命名为code.tar.gz

在这里插入图片描述

2、解压本地主机上code.tar.gz文件到远程主机上的/root目录下

在这里插入图片描述

3、查看nodes01上解压后的文件

在这里插入图片描述

选项"copy=no"

实验步骤:

解压远程主机上的压缩包到远程主机指定路径下

1、解压至远程主机上指定的目录下

在这里插入图片描述

2、在远程主机上查看解压后的文件yum.repos.d

在这里插入图片描述

hostname模块

功能:

管理主机名

实验内容:

修改远程主机名

实验步骤:

1、修改远程主机名为"node01"

在这里插入图片描述

2、查看修改后的远程主机名

在这里插入图片描述

cron模块

功能:

计划任务
支持时间:minute,hour,day,month,weekday

实验内容一:

设置远程主机计划任务功能

实验步骤:

1、设置minute 计划任务

在这里插入图片描述

2、查看生成的文档

在这里插入图片描述

3、查看进行中的计划列表

在这里插入图片描述

实验内容二:

删除一个远程主机的计划任务

实验步骤:

1、删除远程主机上的crontest任务

在这里插入图片描述

2、查看任务计划情况

在这里插入图片描述

yum模块

功能:通过配置 state 定义安装或者删除指定的软件

实验内容一:选项"state=present"

安装指定的软件

实验步骤:

1、安装httpd服务

在这里插入图片描述

实验内容二:卸载指定的软件 选项"state=absent"

实验步骤:

1、卸载刚刚安装的httpd服务

在这里插入图片描述

service模块

功能:

管理服务的启动和关闭

实验内容:选项"state=started" 启动服务

实验步骤:

1、启动httpd服务

在这里插入图片描述

2、检查端口

在这里插入图片描述

实验内容三:选项"state=restarted" 重启服务

实验步骤:

1、重启httpd服务

在这里插入图片描述

实验内容四:选项"state=stopped" 关闭服务

实验步骤:

1、关闭httpd服务

在这里插入图片描述

user模块

功能:

用于管理远程主机的操作系统用户功能

实验内容一:

创建用户

实验步骤:

1、在远程主机上创建名为csdn的用户

在这里插入图片描述

2、查看远程主机上该id信息

在这里插入图片描述
实验内容二:删除远程主机上的用户并查看该id信息
在这里插入图片描述

group模块

功能:

管理远程主机操作系统用户组功能

实验内容一:

创建用户组

实验步骤:

1、创建csdn组

在这里插入图片描述

2、查看csdn组信息

在这里插入图片描述

实验内容二:

删除用户组

实验步骤:

1、删除csdn组

在这里插入图片描述

2、查看组信息,csdn组的信息已被移除

在这里插入图片描述

发布了16 篇原创文章 · 获赞 0 · 访问量 391

猜你喜欢

转载自blog.csdn.net/qq478754704/article/details/103554391