Linux---自动化工具Ansible模块教程

Ansible是一款为类Unix系统开发的自由开源的配置和自动化工具,它使用SSH来和节点进行通信,并基于模块工作。以下是Ansible一些常用模块的使用教程:

一、ping模块

ping模块用于检查指定节点机器是否连通。用法简单,不涉及参数,主机如果在线,则回复"pong"。

示例命令:

bash 复制代码
ansible all -m ping

该命令会向所有主机发送ping请求,并返回结果。如果主机在线,则返回结果中会包含"ping": "pong"。

二、command模块

command模块用于在远程主机上执行命令,Ansible默认就是使用command模块。但请注意,command模块不能使用管道符和重定向功能。

示例命令:

bash 复制代码
ansible 192.168.109.138 -a 'ls /tmp'

该命令会在远程主机192.168.109.138上执行"ls /tmp"命令,并返回结果。

三、shell模块

shell模块调用的/bin/sh指令执行,与command模块类似,但可以使用管道符和重定向功能。

示例命令:

bash 复制代码
ansible all -m shell -a 'echo $HOME'

该命令会在所有主机上执行"echo $HOME"命令,并返回结果。由于使用了shell模块,因此可以使用shell的特性,如管道符和重定向。

四、copy模块

copy模块用于将文件从Ansible控制节点复制到远程主机上。

示例命令:

bash 复制代码
ansible all -m copy -a 'src=/path/to/local/file dest=/path/to/remote/directory'

该命令会将本地文件/path/to/local/file复制到远程主机的/path/to/remote/directory目录下。

五、yum模块(适用于RedHat系,Ubuntu不支持)

yum模块用于在RedHat系的主机上管理软件包。

示例命令:

bash 复制代码
ansible all -m yum -a 'name=httpd state=present'

该命令会在所有主机上安装httpd软件包(如果尚未安装),或者确保httpd软件包已安装(如果已安装,则不会进行任何操作)。state=present表示确保软件包存在,state=absent则表示确保软件包不存在。

六、service模块

service模块用于管理服务(如启动、停止、重启服务等)。

示例命令:

bash 复制代码
ansible all -m service -a 'name=httpd state=started enabled=yes'

该命令会在所有主机上启动httpd服务,并确保httpd服务在系统启动时自动启动。state=started表示启动服务,state=stopped表示停止服务,state=restarted表示重启服务。enabled=yes表示设置服务为开机自启动,enabled=no则表示禁止服务开机自启动。

七、user模块

user模块用于管理用户账户。

示例命令:

bash 复制代码
ansible all -m user -a 'name=johndoe state=present create_home=yes'

该命令会在所有主机上创建名为johndoe的用户账户,并为其创建家目录。state=present表示确保用户存在,state=absent则表示删除用户。create_home=yes表示创建家目录,create_home=no则表示不创建家目录。

八、group模块

group模块用于管理用户组。

示例命令:

bash 复制代码
ansible all -m group -a 'name=developers state=present'

该命令会在所有主机上创建名为developers的用户组(如果尚未创建),或者确保developers用户组已存在(如果已存在,则不会进行任何操作)。state=present表示确保用户组存在,state=absent则表示删除用户组。

九、file模块

file模块用于管理文件或目录的状态,如创建、删除、修改权限等。

示例命令:

bash 复制代码
ansible all -m file -a 'path=/path/to/directory state=directory mode=0755'

该命令会在所有主机上创建/path/to/directory目录(如果尚未创建),并设置其权限为0755。state=directory表示确保路径为目录,state=file则表示确保路径为文件,state=absent则表示删除文件或目录。mode参数用于设置文件或目录的权限。

十、script模块

script模块用于在远程主机上执行本地脚本。

示例命令:

bash 复制代码
ansible all -m script -a '/path/to/local/script.sh'

该命令会在所有主机上执行本地脚本/path/to/local/script.sh。请注意,该脚本需要在Ansible控制节点上可用。

以上仅列出了Ansible的一些常用模块及其基本用法。Ansible拥有大量的模块和插件,可以满足各种自动化任务的需求。在使用时,可以参考Ansible的官方文档或相关教程以获取更详细的信息和示例。

相关推荐
木头左1 小时前
【Python】不点浏览器发博客:逆向 CSDN 创作中心接口做 md-publish 技能
python·自动化·api
lisw051 小时前
智能化机器人系统的模块化设计自动化!
机器学习·机器人·自动化
CodeYp20192 小时前
第14讲:mmap 实现文件 LRU 缓存
linux·lru·mmap
程序开发阿元2 小时前
一台 20G 的 VPS 被日志吃掉一半:我按这个顺序查了二十分钟
linux·ssh
.冰块.3 小时前
流量大了自动加 Pod!K8s HPA 扩缩容与 ResourceQuota/LimitRange 资源管控实战
linux·云原生·容器·kubernetes·hpa·quota·limitrange
承渊政道3 小时前
Linux网络学习【深入理解多路转接select、poll的代码改写】
linux·ubuntu·select·多路转接·poll
雪落漂泊3 小时前
Linux进程(四)概念:命令行参数和环境变量篇
linux·运维·服务器
qq_377572774 小时前
linux x86 arm loongarch
linux
Dragon~Snow4 小时前
Centos Stream10 安装 MySQL-9.7.2-linux-glibc2.28-x86_64.tar
linux·mysql·centos
say_fall4 小时前
【Linux系统编程】Linux进程信号:从“外卖到了“到内核里的一张位图
linux·运维·服务器·车载系统·智能硬件