当前位置:首页 > 技术文章 > 正文内容

Ansible Ad-Hoc 命令速查:日常运维操作指南

arlanguage3个月前 (01-31)技术文章29

在现代IT运维中,自动化已成为提高效率和减少人为错误的关键手段。Ansible作为一种流行的自动化工具,以其简洁易用、无需代理的特点受到了广泛欢迎。今天,我们就以一张“Ansible AdHoc Commands basics”为蓝本,来学习如何使用Ansible的Ad-Hoc命令,实现日常运维操作的自动化。

什么是Ansible Ad-Hoc 命令?
Ansible Ad-Hoc 命令是一种用于快速执行单个任务的Ansible命令,它们不需要编写Playbook,可以直接在终端中运行。Ad-Hoc 命令通常用于执行一次性的任务,例如,检查主机连通性、执行简单的命令、管理文件等。虽然Ad-Hoc命令不如Playbook那样强大和灵活,但在日常运维中,Ad-Hoc命令可以帮助我们快速解决问题。

Ping 所有主机

首先,我们来看如何使用 Ansible 的 ping 模块来测试所有主机的连通性:

  • ansible all -m ping:这个命令会向清单文件中所有主机发送 ping 请求,并返回结果。如果返回 pong,则说明主机可达。 -m 选项表示使用的模块,all 表示所有主机。

执行命令

接下来,我们来看如何使用 command 模块来在远程主机上执行命令:

  • ansible all -a "uptime":这个命令会在所有主机上执行 uptime 命令,并返回结果。-a 选项表示传递给模块的参数。
  • ansible webservers -a "df -h":这个命令会在 webservers 组的所有主机上执行 df -h 命令,显示磁盘空间使用情况。可以通过组名来选择特定主机组。

管理文件

Ansible 的 file 模块可以帮助我们管理远程主机上的文件和目录:

  • ansible all -m file -a "path=/tmp/testfile state=touch": 在所有主机上创建一个空文件 /tmp/testfilestate=touch 表示创建一个空文件。
  • ansible all -m file -a "path=/tmp/testfile state=absent":在所有主机上删除文件 /tmp/testfilestate=absent 表示删除文件或目录。
  • ansible all -m file -a "path=/var/logs mode=0755 state=directory":在所有主机上创建目录 /var/logs,并设置权限为 0755。state=directory 表示创建目录,mode 表示设置权限。

管理软件包

Ansible 支持多种软件包管理工具,例如 aptyum

  • ansible all -m apt -a "name=nginx state=present": 在所有基于 Debian/Ubuntu 的主机上安装 Nginx。state=present 表示安装软件包。
  • ansible all -m yum -a "name=httpd state=absent":在所有基于 RHEL 的主机上卸载 Apache。state=absent 表示卸载软件包。

管理服务

Ansible 的 service 模块可以帮助我们管理远程主机上的服务:

  • ansible all -m service -a "name=nginx state=started":在所有主机上启动 Nginx 服务。state=started 表示启动服务。
  • ansible all -m service -a "name=nginx state=stopped":在所有主机上停止 Nginx 服务。state=stopped 表示停止服务。
  • ansible all -m service -a "name=nginx state=restarted":在所有主机上重启 Nginx 服务。state=restarted 表示重启服务。

传输文件

Ansible 的 copy 模块可以帮助我们传输文件到远程主机:

  • ansible all -m copy -a "src=/path/to/local/file dest=/tmp/file":将本地文件 /path/to/local/file 复制到所有远程主机的 /tmp/filesrc 指定源文件路径,dest 指定目标路径。
  • ansible all -m copy -a "content='Hello World' dest=/tmp/hello.txt":在所有主机上创建文件 /tmp/hello.txt,并写入内容 “Hello World”。 content 指定文件内容。

总结

Ansible Ad-Hoc 命令是一种简单而强大的工具,可以帮助我们快速执行各种运维任务。通过本文的学习,希望大家能掌握Ansible常用Ad-Hoc命令,并将其应用到日常运维工作中,提高工作效率。

在实际使用 Ansible 时,你还遇到过哪些问题?又有哪些实用的技巧呢?欢迎在评论区分享你的经验和见解,让我们一起学习进步!

扫描二维码推送至手机访问。

版权声明:本文由AR编程网发布,如需转载请注明出处。

本文链接:http://www.arlanguage.com/post/1201.html

分享给朋友:

“Ansible Ad-Hoc 命令速查:日常运维操作指南” 的相关文章

2022年从零开始,用一篇博客掌握 nginx 的初级配置

当 nginx 安装之后,默认的配置如下所示(数据来源为宝塔自动生成),本篇博客重点介绍的是配置虚拟机相关内容,即 server 块配置项。 server 块的指令主要用于设置主机和端口, location 块用于匹配网页路径,一个 http 块可以包含多个 server 。基础配置server {...

解决php因为输出内容太短无法流式(Stream)输出问题

实测得知,如果用PHP做流式输出每次echo的内容太短的话,就没有流式的效果了,而是会等输出的长度达到一定时前端才能拿到结果,如下:这是我这边的测试结果,可见,这里仅接收到了两次流式输出,但是我在PHP里是输出了10次,从而证明了每次流式的内容达到一定长度时才能有流式得到效果,这个长度到底是多少,我...

到 2024 年了,全球仍有 76.4% 的网站在用「已死」的 PHP!

如今资历稍长的程序员,提到 PHP 可能都会联想到一个梗:“PHP 是最好的语言。”这个梗并非出自别处,正源自于 PHP 自己的官方文档:早在 2001 年 7 月,PHP 文档中就有一句“PHP is the best language for web programming(PHP 是世界上最好...

了解PHP-FPM

在服务器上,当我们查看php进程时,全都是php-fpm进程,大家都知道这个就是php的运行环境,那么,它到底是个什么东西呢?PHP-FPM简介PHP-FPM,就是PHP的FastCGI管理器,用于替换PHP FastCGI的大部分附加功能,在PHP5.3.3后已经成为了PHP的标配。有小伙伴要问了...

Nginx的location里面的root、alias的使用技巧与区别

1. 介绍1.1 介绍福哥在将TFLinux的PHP+Apache的组合转换成PHP+FPM+Nginx的过程里遇到了一个问题,就是Apache的虚拟主机转为Nginx里面的虚拟主机的时候参数怎么解决呢?今天福哥就将Nginx配置文件里面的location、root、alias的使用技巧给大家做一个...

服务器排障nginx 499 错误地解决

问题描述:近期平台对外开放了数据查询接口,在数据量特别大时,返回结果时间可能会超过3秒,接口开放后,系统本身调用没有问题,其他第三方平台接入时,总会报链接超时问题;问题原因:查看tomcat日志无任何错误,一开始以为是tomcat接收参数最大限制问题,对tomcat做了一次整体优化,修改连接数、修改...