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

devtools/2024/9/20 3:59:29/ 标签: ansible

目录

一、Ansible命令

1.定义

2.组成

 3.命令格式

4.选项

5.示例

二、常用命令解释

ansible-doc-toc" style="margin-left:40px;">1.ansible-doc

ansible-galaxy-toc" style="margin-left:40px;">2.ansible-galaxy

ansible-playbook-toc" style="margin-left:40px;">3.ansible-playbook

ansible-pull-toc" style="margin-left:40px;">4.ansible-pull

ansible-vault-toc" style="margin-left:40px;">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 执行任务

二、常用命令解释

ansible-doc">1.ansible-doc

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

ansible-galaxy">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

ansible-playbook">3.ansible-playbook

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

ansible-pull">4.ansible-pull

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

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

ansible-vault">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.ppmy.cn/devtools/37985.html

相关文章

如何利用AI提高内容生产效率

目录 一、自动化内容生成 二、内容分发与推广 三、内容分析与优化 图片来源网络,侵权联系可删 一、自动化内容生成 随着AI技术的飞速发展,自动化内容生成已经成为提高内容生产效率的重要手段。AI可以通过自然语言处理(NLP)、机…

无处不在的AI:被科技巨头盯上的Agent智能体的崭新时代

🥽一.Agent AI智能体 Agent AI 智能体是一种基于人工智能技术的智能代理,它可以自主地执行任务、与环境进行交互,并根据环境的变化做出决策。 OpenAI将AI Agent定义为以大语言模型(LLM)为大脑驱动具有自主理解、感知、…

Temu、阿里国际站、TikTok的“速度战役”

事实上,经过多年的发展,电商早已深入到了人们的日常生活中,消费者也越来越习惯网上购物了。伴随着消费者网购需求的攀升,电商行业也跑出了诸多企业,时至今日,新老玩家在电商领域的“角力”仍在持续进行中。…

(41)5.6-5.7数据结构(栈和队列的应用)

1.栈在括号匹配中的应用 #define _CRT_SECURE_NO_WARNINGS #define MaxSize 10 typedef struct { char data[MaxSize];//静态数组存放栈中元素 int top; //栈顶指针 }SqStack;//初始化栈 void InitStack(SqStack& S);//判断栈是否为空 bool StackEmpty(SqStack S…

MYSQL数据库中数据的增删改查

环境搭建 1.创建数据库 CREATE DATABASE IF NOT EXISTS cass DEFAULT CHARSET utf8; 2.创建数据表 CREATE TABLE IF NOT EXISTS cass.cassTables( ID INT UNSIGNED AUTO_INCREMENT, name VARCHAR(10) NOT NULL, sex CHAR(1), age TINYINT UNSIGNE…

【XR806开发板试用】阻塞式串口发送与接收教程

本文基于wsl2搭建的ubuntu18.04 vscode编辑器 很奇怪啊,找了半天居然没人发串口的教程,于是只能自己试一试了,在此发一个阻塞式的串口发送与接收的教程。并且,感谢.ACE彭洪权大佬在我配置环境遇到几十个报错的时候帮我远程搭建环…

使用socket+Python实现ping

import os import socket import struct import select import time# 计算校验和&#xff0c;用于确保数据的完整性 def checksum(source_string):sum 0count 0max_count len(source_string)# 处理成对的字节while count < max_count - 1:val source_string[count 1] *…

使用wxPython和pandas模块生成Excel文件

介绍&#xff1a; 在Python编程中&#xff0c;有时我们需要根据特定的数据生成Excel文件。本文将介绍如何使用wxPython和pandas模块来实现这个目标。我们将创建一个简单的GUI应用程序&#xff0c;允许用户选择输出文件夹和输入的Excel文件&#xff0c;并根据Excel文件中每个单…

【管理咨询宝藏93】大型制造集团数字化转型设计方案

【管理咨询宝藏93】大型制造集团数字化转型设计方案 【格式】PDF版本 【关键词】国际咨询公司、制造型企业转型、数字化转型 【核心观点】 - 235页大型制造型集团数字化转型方案设计&#xff01;细节非常详尽&#xff0c;图表丰富&#xff01; - 系统架构必须采用成熟、具有国…

静态分析-RIPS-源码解析记录-02

这部分主要分析scanner.php的逻辑&#xff0c;在token流重构完成后&#xff0c;此时ini_get是否包含auto_prepend_file或者auto_append_file 取出的文件路径将和tokens数组结合&#xff0c;每一个文件都为一个包含require文件名的token数组 接着回到main.php中&#xff0c;此时…

SpringBoot框架如何接入RocketMQ?

目录 一、SpringBoot框架介绍 二、RocketMQ介绍 三、RocketMQ的应用场景 四、SpringBoot框架如何接入RocketMQ 一、SpringBoot框架介绍 Spring Boot是一个开源的Java框架,它基于Spring框架,旨在简化Java应用程序的开发。Spring Boot通过自动化配置和约定优于配置的原则,大…

掌握TypeScript的非空断言(!)和可选链(?):开发效率翻倍!

引言 标题&#xff1a;掌握TypeScript的非空断言和可选链&#xff1a;开发效率翻倍&#xff01;简短介绍&#xff1a;在TypeScript中&#xff0c;?和!操作符是提高代码安全性和开发效率的强大工具。本文将为你揭示它们的使用方式和最佳实践。 背景知识 易于理解的解释&…

数据库权限管理

1.查看系统级权限&#xff08;global level) Select * from mysql.user\G; 2.查看数据库中所有表的权限 Select * from mysql.db\G 3.远程连接数据库 第一步在有数据库服务上的主机上&#xff1a;授权 grant all on *.* to root192.168.40.83 identified by Zxy20234; 第…

Atlassian Jira 信息泄露漏洞(CVE-2019-3403) 排查思路

Atlassian Jira&#xff1a; 企业广泛使用的项目与事务跟踪工具&#xff0c;被广泛应用于缺陷跟踪、客户服务、需求收集、流程审批、任务跟踪、项目跟踪和敏捷管理等工作领域。 简述&#xff1a; 近日发现多个内网IP触发的Atlassian Jira 信息泄露漏洞的告警。 告警的检测规…

Octave行列式矩阵运算

Octave 行列式矩阵运算 Octave 计算行列式指令一步步计算行列式 Octave 矩阵加法Octave 矩阵乘法Octave 矩阵转置Octave 矩阵求秩Octave 矩阵求逆Octave 矩阵化为最简形式 仅供本人查阅 Octave 是一个开源的数值计算软件&#xff0c;主要用于数学计算、算法开发和数据可视化。它…

实用的Chrome命令

常用命令&#xff1a; 如下为常用的chrome命令&#xff0c;欢迎尝试体验。 1. chrome://downloads 查看下载内容 2. chrome://extensions 查看扩展 3. chrome://plugins 显示已安装插件 4. chrome://bookmarks 书签管理器 5. chrome://history 历史直接访问 6. chrome://res…

软件系统安全设计规范(word原件)

1.1安全建设原则 1.2 安全管理体系 1.3 安全管理规范 1.4 数据安全保障措施 1.4.1 数据库安全保障 1.4.2 操作系统安全保障 1.4.3 病毒防治 1.5安全保障措施 1.5.1实名认证保障 1.5.2 接口安全保障 1.5.3 加密传输保障 1.5.4终端安全保障 软件资料清单列表部分文档…

Window安装OpenSSH客户端及服务

文章目录 引言I 给windows安装一个ssh服务1.1 下载对应的OpenSSH1.2 安装sshd服务1.3 开放22端口1.4 配置sshd服务自动启动1.5 验证ssh是否可用II 服务部署III 公钥登录 Windows OpenSSH Server3.1 生成公钥-私钥对,把公钥复制到目标机器的3.2 授予对AuthorizedKeysFile权限3.…

详细讲解lua中string.gsub的使用

string.gsub 是 Lua 标准库中的一个函数&#xff0c;用于全局替换字符串中的某些部分。string.gsub 是 Lua 中非常实用的一个函数&#xff0c;它可以用来进行字符串的处理和替换操作。 它的基本语法如下&#xff1a; string.gsub(s, pattern, replacement [, n])s 是要处理的…

Spring Cloud 整合Sentinel

1、引入依赖 版本说明 alibaba/spring-cloud-alibaba Wiki GitHub 父pom <spring.cloud.version>Hoxton.SR12</spring.cloud.version> <spring.cloud.alibaba.version>2.2.10-RC1</spring.cloud.alibaba.version>Sentinel应用直接引用starter <…