掌握Ansible命令——提高自动化运维效率

目录

一、Ansible命令

1.定义

2.组成

 3.命令格式

4.选项

5.示例

二、常用命令解释

1.ansible-doc

2.ansible-galaxy

3.ansible-playbook

4.ansible-pull

5.ansible-vault

三、高频使用的命令

1.Ping主机

2.执行命令

3.安装软件包

4.管理文件

5.管理服务

6.获取主机信息

7.执行自定义脚本

8.以sudo权限执行命令


在当今的IT自动化领域,Ansible无疑是一个无法被忽视的重要角色。其便利性和高效性受到了广大开发者和系统管理员的一致好评,成为了配置管理和应用部署的首选工具。

一、Ansible命令

1.定义

Ansible 命令是一种强大的自动化工具,它允许系统管理员和开发者在多台机器上自动执行任务。其中,Ad-Hot模式是一个概念性的名称,它与编写Ansible playbook的概念相似,类似于直接在命令行输入shell命令与编写shell scripts之间的关联。

2.组成

  • Ansible 匹配的资产主机:这是你希望在其上执行任务的目标机器或一组机器。
  • 使用的模块 -m:这是你希望执行的具体动作或任务,Ansible提供了许多预定义的模块以供选择。
  • 模块的参数 -a:这允许你为特定模块传递参数,以便进一步定制其行为。

 3.命令格式

ansible [pattern] -m [module] -a '[module arguments]' [options][pattern]:用来匹配目标主机或主机组的模式。-m [module]:指定要使用的模块。-a '[module arguments]':指定模块的参数。[options]:其他可选参数。

4.选项

命令选项含义
-a 'Arguments', --args='Arguments'指定模块的参数。
-m NAME, --module-name=NAME指定要执行的模块名。默认使用 command 模块,所以如果只是执行单一命令,可以省略 -m 参数。
-u Username, --user=Username指定执行远程命令的用户,默认使用当前用户。
-U, --sudo-user=SUDO_Usersudo 到哪个用户,默认为 root。
-k, --ask-pass提示输入 SSH 密码,而不是假设基于密钥的验证。
-K, --ask-sudo-pass提示输入 sudo 密码。
-s, --sudo使用 sudo 运行命令。
-S, --su使用 su 命令运行命令。
-f NUM, --forks=NUM指定并行任务数,默认为 5。
--private key=PRIVATE_KEY_FILE指定私钥文件的路径,用于 SSH 连接验证。
-v, --verbose输出详细信息。
all针对 hosts 文件中定义的所有主机执行命令。
-M MODULE_PATH, --module-path=MODULE_PATH指定模块的搜索路径。
-o, --one-line压缩输出,尝试将输出信息压缩到一行中显示。
-B SECONDS, --background=SECONDS在后台运行命令,并指定超时时间。
-P NUM, --poll=NUM在后台模式下,每隔多少秒检查一次作业状态。
-T SECONDS, --timeout=SECONDS设置命令执行的超时时间。
-c CONNECTION, --connection=CONNECTION指定连接类型,如 paramiko (SSH)、ssh 或 local
--tags=TAGS只执行指定标签的任务。
--list-hosts只打印将执行 playbook 的主机列表,并不真正执行 playbook。
--list-tasks列出 playbook 中所有将被执行的任务。
-C, --check只测试命令会改变什么内容,而不会真正执行。
--syntax-check检查 playbook 的语法,但不执行。
-l SUBSET, --limit=SUBSET进一步限制所选主机或主机组。
--skip-tags=SKIP_TAGS跳过标签匹配的任务。
-e EXTRA_VARS, --extra-vars=EXTRA_VARS设置额外的变量。

5.示例

ansible all -m command -a "df -h" --become --become-user root
#以 root 用户身份对所有主机执行 df -h 命令ansible webservers -m yum -a "name=nginx state=present" -k
#使用 yum 模块安装 nginx,并提示输入密码ansible appservers -m command -a "uptime" -u john -f 5
#以 john 用户身份对 appservers 主机组执行 uptime 命令,并限制并发数为 5ansible testhosts -a "/sbin/reboot" -f 10
#重启 testhosts 组的所有机器,每次重启 10 台ansible-playbook update.yml --extra-vars "hosts=vipers user=admin"
#使用额外的变量执行 playbookansible [pattern] -m [module] -a '[module arguments]' --limit=192.168.241.22,192.168.241.23
#只对这个两个 IP 执行任务

二、常用命令解释

1.ansible-doc

ansible-doc -h Usage: ansible-doc [options] [module...]
#该指令用于查看模块信息,常用参数有两个-l 和 -s ,具体如下
ansible-doc -l
#列出所有已安装的模块ansible-doc -s command
#查看具体某模块的用法,这里如查看command模块

2.ansible-galaxy

ansible-galaxy -h Usage: ansible-galaxy [init|info|install|list|remove] [--help] [options] ...
#ansible-galaxy指令用于方便的从https://galaxy.ansible.com/ 站点下载第三方扩展模块,我们可以形象的理解其类似于centos下的yum、python下的pip

3.ansible-playbook

通过读取playbook 文件后,执行相应的动作

4.ansible-pull

该指令使用需要谈到ansible的另一种模式——pull 模式,这和我们平常经常用的push模式刚好相反

其适用于以下场景:你有数量巨大的机器需要配置,即使使用非常高的线程还是要花费很多时间

5.ansible-vault

ansible-vault主要应用于配置文件中含有敏感信息,又不希望他能被人看到,vault可以帮你加密/解密这个配置文件,属高级用法。主要对于playbooks里比如涉及到配置密码或其他变量时,可以通过该指令加密,这样我们通过cat看到的会是一个密码串类的文件,编辑的时候需要输入事先设定的密码才能打开。这种playbook文件在执行时,需要加上 –ask-vault-pass参数,同样需要输入密码后才能正常执行。

三、高频使用的命令

1.Ping主机

用于测试Ansible是否能够成功连接到远程主机。

ansible all -m ping

2.执行命令

在远程主机上执行特定的shell命令。

ansible all -m command -a "ls -l /etc"

3.安装软件包

 使用yum模块在远程主机上安装软件包。

ansible servers -m yum -a "name=nginx state=present"

4.管理文件

 使用copy模块将本地文件复制到远程主机。

ansible all -m copy -a "src=/path/to/local/file dest=/path/on/remote/host"

5.管理服务

使用service模块启动、停止或重启远程主机上的服务。

ansible webservers -m service -a "name=nginx state=started"

6.获取主机信息

 使用setup模块收集远程主机的系统信息。

ansible all -m setup

7.执行自定义脚本

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

ansible all -m script -a "/path/to/local/script.sh"

8.以sudo权限执行命令

使用--become选项以sudo权限在远程主机上执行命令。

ansible all -m command -a "whoami" --become --become-user root

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/8135.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

List的两种实现

前置知识: 数组 baseAddress:数组的首地址 dataTypeSize:数组中元素类型的大小,如int为4字节 为什么数组索引从0开始,假如从1开始不行吗? 在根据数组索引获取元素的时候,会用索引和寻址公式来计…

Spring Cloud 版本简介

SpringCloud发布版本约定 WIKI:发布火车命名约定 spring-cloud/spring-cloud-release 维基 GitHub上 在2020年之前,使用Release Train命名风格: Spring Cloud的Release Train版本号规则:v{伦敦地铁站的英文单词}{SR/M/RC}{数字…

JAVA随记——集合篇

注意:作者之前的Java基础没有打牢,有一些知识点没有记住,所以在学习中出现了许多零散的问题。现在特地写一篇笔记总结一下,所以有些知识点不是很齐全。 集合中各类名词的关系 Collection集合为单列集合。 集合存储数据类型的特点…

森林消防—高扬程水泵,高效、稳定、可靠!/恒峰智慧科技

森林,作为地球的“绿色肺叶”,不仅为我们提供了丰富的自然资源,更是维持生态平衡的重要一环。然而,随着全球气候的变化和人为活动的增加,森林火灾频发,给生态环境和人民生命财产安全带来了巨大威胁。在森林…

与时代同行,Build with AI 2024 线下活动五月再次开放报名

技术开发日新月异,软硬件迭代和应用场景多样化对开发者提出了更多挑战。面对科技发展潮流,GDG (谷歌开发者社区) 一直秉承开放共创的精神,以热忱之心与开发者们一同探索 AI 的广阔发展前景。 在过去的四月里,我们在北京、上海、深…

厉害x3 PUA到自己都信了

这些天抖音一直刷到某副总裁的Vlog。厉害x3 PUA到自己都信了。只能说这个高管确实有些本事,我也会很欣赏,但是最让我不可思议的是网友的评论产生了分歧。我只能说怎么会有人把PUA当饭吃的? 你去企业上班的初心究竟是什么?在企业里…

php使用服务器端和客户端加密狗环境部署及使用记录(服务器端windows环境下部署、linux环境宝塔面板部署、客户端部署加密狗)

php使用服务器端和客户端加密狗环境部署及使用记录 ViKey加密狗环境部署1.windows环境下部署开发文档验证代码提示Fatal error: Class COM not found in 2.linux环境下部署(宝塔面板)开发文档验证代码提示Fatal error: Uncaught Error: Call to undefine…

加速乐 js解混淆 __jsl_clearance_s生成

提示!本文章仅供学习交流,严禁用于任何商业和非法用途,未经许可禁止转载,禁止任何修改后二次传播,如有侵权,可联系本文作者删除! 目标网站 aHR0cHM6Ly9jcmVkaXQuaGVmZWkuZ292LmNuL2NyZWRpdC13…

使用npm script运行webpack

npm(Node Package Manager)是 Node.js 的包管理工具,用于安装、发布和管理 Node.js 包。 在安装node的时候,就默认安装了npm。 Npm Script 则是 Npm 内置的一个功能,允许在 package.json 文件里面使用 scripts 字段定…

聚观早报 | 比亚迪首款新能源皮卡;苹果M4芯片有望登场

聚观早报每日整理最值得关注的行业重点事件,帮助大家及时了解最新行业动态,每日读报,就读聚观365资讯简报。 整理丨Cutie 5月8日消息 比亚迪首款新能源皮卡 苹果M4芯片有望登场 红旗首款手机外观揭晓 一加13设计细节曝光 长城汽车4月销…

matlab 基于拉依达检验法(3σ准则) 实现多类别多参数的批量异常样本检验 V2.0

简介 拉依达检验法(3σ准则)是一种统计学方法,用于检测数据中的异常值。这种方法基于正态分布的特性来确定数据点是否可能是异常值。以下是关于拉依达检验法(3σ准则)的详细介绍: 基本原理: 拉…

Electron项目中将CommonJS改成使用ES 模块(ESM)语法preload.js加载报错

问题 将Electron项目原CommonJS语法改成使用ES 模块(ESM)语法,preload.js一直加载不到,报错如下: VM111 renderer_init:2 Unable to load preload script: D:\Vue\wnpm\electron\preload.js VM111 renderer_init:2 E…

3D相机及应用

无论是2D相机和3D相机,在工业应用中都有着不可或缺的作用。3D相机与2D相机的最大区别在于,3D相机可以获取真实世界尺度下的3D信息,而2D相机只能获取像素尺度下的2D平面图像信息。通过3D相机得到的数据,我们可以还原出被测量物体的…

FX110书籍推荐:如何快速成为一名专业股票投资人?

股票投资领域有一本神作《股票交易入门》,它是股票从业人员的入门必备书籍。 关于股票入门的书籍很多,但这本书涉及的知识面最全、实用性最强。从这本书里,我们可以领略到股票交易世界的跌宕起伏而又波澜壮阔的魅力。本书作者 本书的作者是美…

Android studio 打开Device Mirroring方便调试

巧合下发现一个很好用的工具,在平时调试真机的时候在每次run app后都要低头找找手机看看效果。但是,用了AS上的Device Mirroring,你会发现根本不需要再低头点手机,调试方便一万倍啊。 话不多说,上图。直接就可以在电脑…

第二篇【传奇开心果系列】Python深度学习库技术点案例示例:深度解读深度学习在语音助手方面的应用

传奇开心果博文系列 系列博文目录Python深度学习库技术点案例示例系列 博文目录前言一、深度学习在语音助手方面的应用介绍二、语音识别示例代码三、语义理解示例代码四、对话生成示例代码五、个性化服务示例代码六、多模态交互示例代码七、情感识别示例代码八、知识点归纳 系列…

sql中select查询大数据量表时很慢

有一张表table1数据量大概130万,查询sql如下: select count(*) from( select distinct a.example_id,a.plan_id,a.trustor_id from table1 a where DEL_STATUS0 and (example_id,1,2) in(...) and plan_id in(...) ) 查询花了将近40秒钟,结…

车间移动环保空调降温通风设备

移动环保空调的特点主要体现在以下几个方面: 环保节能:移动环保空调通常采用水冷技术,无需使用化学制冷剂,符合环保要求。同时,其高效节能的设计能有效降低能耗,节约能源。快速降温:移动环保空…

图搜索算法 - 拓扑排序

相关文章: 数据结构–图的概念 图搜索算法 - 深度优先搜索法(DFS) 图搜索算法 - 广度优先搜索法(BFS) 拓扑排序 概念 几乎所有的工程都可分为若干个称作活动的子工程,而这些子工程之间,通常受…

UART、TIMER

UART简介(通用异步收发器,通常称串口) UART,是一种串行、异步、全双工的通信协议,在嵌入式领域应用的非常广泛。 UART作为异步串行通信协议的一种,工作原理是将传输数据的每个二进制位一位接一位地传输。…