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

相关推荐
无垠的广袤7 小时前
【工业树莓派 CM0 NANO 单板计算机】本地部署 EMQX
linux·python·嵌入式硬件·物联网·树莓派·emqx·工业物联网
414a7 小时前
LingJing(灵境):Linux Amd64局域网设备访问靶机教程
linux·安全·web安全·网络安全·lingjing·灵境
tianyuanwo7 小时前
多平台容器化RPM构建流水线全指南:Fedora、CentOS与Anolis OS
linux·运维·容器·centos·rpm
BD_Marathon7 小时前
【Zookeeper】CAP理论——CAP介绍
linux·分布式·zookeeper
赖small强8 小时前
【Linux 网络基础】HTTPS 技术文档
linux·网络·https·tls
写代码的学渣8 小时前
ubuntu 22.04 新装的系统 xshell 连不上
linux·运维·ubuntu
序属秋秋秋9 小时前
《Linux系统编程之进程环境》【环境变量】
linux·运维·服务器·c语言·c++·操作系统·系统编程
云计算练习生9 小时前
linux shell编程实战 10 Git工具详解与运维场景实战
linux·运维·git
虚伪的空想家12 小时前
KVM的ubuntu虚机如何关闭安全启动
linux·安全·ubuntu
t1987512817 小时前
在Ubuntu 22.04系统上安装libimobiledevice
linux·运维·ubuntu