文章目录
- 一、script模块
- 1.1、功能
- 1.2、常用参数
- 1.3、举例
- 二、unarchive模块
- 2.1、功能
- 2.2、常用参数
- 2.3、举例
- 三、shell模块
- 3.1、功能
- 3.2、常用参数
- 3.3、举例
一、script模块
1.1、功能
Ansible 的 script 模块允许你在远程主机上运行本地的脚本文件,其提供了一种便捷的方式来执行自定义脚本以实现特定的自动化任务。
1.2、常用参数
- chdir:可选参数,用于指定在远程主机上执行脚本时的工作目录。例如,若脚本依赖于特定目录下的文件,可通过该参数指定目录。
- creates:可选参数,指定一个文件路径。如果该文件在远程主机上已经存在,脚本将不会执行。这可以避免重复执行某些耗时或有副作用的脚本。
- removes:可选参数,指定一个文件路径。如果该文件在远程主机上不存在,脚本将不会执行。
- executable:可选参数,用于指定执行脚本的解释器。例如,若脚本是 Python 脚本,可指定 executable: /usr/bin/python3。
1.3、举例
首先在ansible主机中创建一个脚本文件
vim van.sh#脚本文件中的内容
date > /tmp/time.txt
- 创建script服务
ansible webserves -m script -a "/root/van.sh"
在任何主机中查看文件:
二、unarchive模块
2.1、功能
Ansible 的 unarchive 模块用于在远程主机上解压缩归档文件,如 .tar、.tar.gz、.zip 等。
2.2、常用参数
- src:必选参数,指定要解压缩的归档文件的路径。该路径可以是本地控制节点上的文件路径,也可以是远程主机上的文件路径。如果文件位于本地,需要结合 copy 参数使用。
- dest:必选参数,指定解压缩文件的目标目录,即归档文件内容将被解压到这个目录下。
- copy:布尔类型参数,默认值为 true。当设置为 true 时,Ansible 会先将本地的归档文件复制到远程主机,然后再进行解压缩操作;当设置为 false 时,假定归档文件已经存在于远程主机上,直接在远程主机上进行解压缩。
- creates:可选参数,指定一个文件或目录路径。如果该文件或目录在远程主机上已经存在,解压缩操作将不会执行,可避免重复解压。
- owner:可选参数,用于指定解压缩后的文件和目录的所有者。
- group:可选参数,用于指定解压缩后的文件和目录的所属组。
- mode:可选参数,用于指定解压缩后的文件和目录的权限,例如 mode: ‘0755’。
2.3、举例
在ansible主机中操作:
#压塑etc目录为tigerhhzz02.tar压缩文件
tar -Pzcvf tigerhhzz02.tar /root/tiger-test/
把tigerhhzz.tar压缩包解压到主机组中的每台机子中
ansible webserves -m unarchive -a 'src=/root/tigerhhzz02.tar dest=/home'
查看组中的任意一台机子的home目录下:
三、shell模块
3.1、功能
shell模块能让你在远程主机上执行任意 shell 命令,实现系统配置、软件安装、文件操作等多种自动化任务。与command模块不同,shell模块会通过 shell 环境(如/bin/sh)来执行命令,这意味着它支持 shell 的一些特性,像管道、重定向等。
3.2、常用参数
- chdir:指定在远程主机上执行命令时的工作目录。在执行依赖特定路径的命令时很有用。
- creates:指定一个文件路径,如果该文件在远程主机上已经存在,命令将不会执行,避免重复操作。
- removes:指定一个文件路径,如果该文件在远程主机上不存在,命令将不会执行。
- executable:指定执行命令的 shell 解释器,默认是/bin/sh,你可以根据需要指定其他解释器,如/bin/bash。
3.3、举例
查看组中每个主机的主机名:
ansible webserves -m shell -a "hostname" -o
批量安装vsftpd服务到组中每个主机:
ansible webserves -m shell -a "yum install -f vsftpd" -o
并开启vsftpd服务:
ansible webserves -m shell -a "systemctl start vsftpd" -o
生活可能不像你想象的那么好,但是也不会像你想象的那么糟。