文章目录
模块功能简表:
模块 | 功能 | 选项 |
---|---|---|
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组信息
实验内容二:
删除用户组