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的官方文档或相关教程以获取更详细的信息和示例。

相关推荐
讓丄帝愛伱24 分钟前
使用JMeter对Linux生产服务器进行压力测试
linux·jmeter·压力测试
lamb张27 分钟前
CentOS常用命令
linux·运维·centos
杭州吉网运维日记27 分钟前
Centos文件已删除空间未释放
linux·运维·centos
跳河轻生的鱼35 分钟前
海思Linux-DEMO(1)-sample_venc(h265,h264)视频流文件的获取
linux·驱动开发·学习
昊虹AI笔记1 小时前
Linux的源码在Windows下解压时提示文件名字相同(重名)的原因及解决办法
linux
diaya1 小时前
linux 逻辑卷挂盘
linux·运维·服务器
WeeJot嵌入式1 小时前
嵌入式系统(将软件嵌入到硬件里面)
linux·c语言
地铁8号线1 小时前
关于ubuntu离线安装ssh
linux
Fuweizn2 小时前
喜报|富唯智能荣获暨2024年广州科技创新创业大赛二等奖
人工智能·自动化·科技创新
Nuttx_Fan_now2 小时前
比QT更高效的一款开源嵌入式图形工具EGT-Ensemble Graphics Toolkit
linux·c++·qt·开源·gui·microchip·egt