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

相关推荐
何妨呀~2 分钟前
Firewalld防火墙端口配置
linux
切糕师学AI9 分钟前
Vim 深度解析:从经典 vi 到现代编辑器之巅
linux·vim·文本编辑器
计算机安禾33 分钟前
【Linux从入门到精通】第49篇:服务器故障排查终极指南——思路决定出路
linux·运维·服务器
古月-一个C++方向的小白34 分钟前
Linux——初识文件
linux·运维·服务器
北山有鸟1 小时前
编译香橙派内核
linux·运维·服务器
小此方1 小时前
Re:Linux系统篇(八)权限篇 ·三:深度解析从 umask 位运算到粘滞位的“权力锁”
linux·运维·服务器
晨曦夜月1 小时前
进程的五大状态及特殊进程解析
linux·服务器·算法
生而为虫1 小时前
Claude Code 最新版安装教程(Windows/Mac/Linux 全平台) 面向普通用户的 Claude Code 安装与模型接入指南
linux·windows·macos
Sarvartha2 小时前
三目运算符
linux·服务器·前端
liangdabiao2 小时前
乐高摩托车深度报告-致敬张雪夺冠 -基于llm-wiki技术自动化写文章的效果
运维·人工智能·自动化