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

ops/2024/10/18 7:47:59/

目录

一、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/ops/39226.html

相关文章

使用sqlmodel实现唯一性校验

代码: from sqlmodel import Field, Session, SQLModel, create_engine# 声明模型 class User(SQLModel, tableTrue):id: int | None Field(defaultNone, primary_keyTrue)# 不能为空,必须唯一name: str Field(nullableFalse, uniqueTrue)age: int | …

python中的数据可视化:二维直方图 hist2d()

【小白从小学Python、C、Java】 【计算机等考500强证书考研】 【Python-数据分析】 python中的数据可视化: 二维直方图 hist2d() 选择题 关于以下代码输出结果的说法中正确的是? import matplotlib.pyplot as plt import numpy as np x np.random.normal(0, 1, …

spring boot参数验证注解@NotNull、@NotBlank和@NotEmpty区别

目录 前言说明举例 前言 使用spring boot参数验证是常常会使用NotNull、NotBlank和NotEmpty三个判断是否不为空的注解,中文都有不能为空的意思,大部分使用者都傻傻分清它们之间到底有什么区别。今天就让咱们来一起探索它们之间的不同吧。 说明 注解名…

【敦煌网注册/登录安全分析报告】

敦煌网注册/登录安全分析报告 前言 由于网站注册入口容易被黑客攻击,存在如下安全问题: 暴力破解密码,造成用户信息泄露短信盗刷的安全问题,影响业务及导致用户投诉带来经济损失,尤其是后付费客户,风险巨大…

axios配置 responseType: “blob“

在使用 Axios 进行网络请求时,配置 responseType: "blob" 是用来指示 Axios 将响应体作为 Blob 对象处理。这在文件下载功能中特别有用,因为 Blob 对象可以被用来创建一个指向该文件内容的 URL,进而触发浏览器的下载行为或者在页面…

【Excel VBA】深入探索VBScript中的Choose函数

深入探索VBScript中的Choose函数 在编程实践中,我们会遇到大量的If……ElseIf……搞得代码异常的庞大。 今天有个VBA的学生,突然问田辛老师有没有好的办法。 于是, 田辛老师发现还真有办法。 也就是Choose函数。Choose函数可以来优化代码逻辑…

第 8 章 机器人底盘Arduino端入口(自学二刷笔记)

重要参考: 课程链接:https://www.bilibili.com/video/BV1Ci4y1L7ZZ 讲义链接:Introduction Autolabor-ROS机器人入门课程《ROS理论与实践》零基础教程 8.4.2 底盘实现_01Arduino端入口 ros_arduino_bridge/ros_arduino_firmware/src/libraries/ROSArduinoBridge…

Spring AOP浅谈

什么是AOP? AOP是Aspect-Oriented Programming的缩写,是一种面向切面的编程方法。 在AOP中,一个切面是一组可以独立于其他代码执行的功能,如日志记录、安全性检查、事务处理等。这些功能通常被称为"通知",并…