首页 > 其他分享 >【Ansible 学习之旅】Ansible核心工具介绍

【Ansible 学习之旅】Ansible核心工具介绍

时间:2024-08-11 15:22:55浏览次数:19  
标签:之旅 ansible yml Ansible 模块 工具 hello galaxy

系列文章

Ansible 介绍和架构
Ansible 安装和入门
配置控制机器和受控机器
Inventory文件介绍


目录


利用ansible实现管理的主要方式

  • Ad-Hoc 即利用ansible命令,主要用于临时命令使用场景
  • Ansible-playbook 主要用于长期规划好的,大型项目的场景,需要有前期的规划过程

类似于在命令行敲入shell命令和 写shell scripts两者之间的关系


ansible-doc

  • 用途: 显示模块的帮助文档和用法。

  • 格式: ansible-doc [options] [module...]

示例:

  • 列出所有模块
ansible-doc -l  
  • 查看指定模块帮助用法
ansible-doc ping  

ansible-doc -s  ping 

ansible

  • 用途:此工具通过ssh协议,实现对远程主机的配置管理、应用部署、任务执行等功能
    建议使用此工具前,先配置ansible主控端能基于密钥认证的方式联系各个被管理节点
  • 格式:ansible <host-pattern> [-m module_name] [-a args]
    • host-pattern : 指定要执行命令的目标主机或组。可以是具体的主机名、IP 地址或组名
    • -m module_name: 指定要使用的 Ansible 模块
    • -a args: 指定传递给模块的参数

示例:

  • 显示所有主机的存活状态:
ansible all -m ping
- 这里的 \<host-pattern> 是 all,意味着这条命令将应用于 Ansible 库存文件中定义的所有主机
- -m 参数后跟的是 ping 模块。ping 模块用于检查远程主机的可达性,它会发送一个 ICMP ping 请求(如果操作系统支持)或尝试通过 SSH 连接来验证远程主机是否响应

在这里插入图片描述

  • 以特定用户执行命令:
ansible all -m command -u wang -a 'ls /root' 
-m 参数后跟的是 command 模块。command 模块用于在远程主机上执行指定的命令
-u 参数用于指定远程执行的用户。在这里,我们将以 wang 用户的身份执行命令
-a 参数后跟的是传递给 command 模块的参数。这里我们执行的命令是 ls /root

ansible-playbook

  • 用途: 执行预定义的剧本文件,用于执行一系列的自动化任务。

  • 格式: ansible-playbook <playbook-file>

示例:

  • 执行一个简单的 hello.yml 剧本:
ansible-playbook hello.yml
  • hello.yml 内容:
---
# hello world yml file
- hosts: mysql
  remote_user: root
  tasks:
    - name: hello world
      command: /usr/bin/wall hello world

Ansible 剧本通常由三个主要部分组成:hosts, remote_usertasks

  • hosts: 指定剧本作用的目标主机或组。在这个例子中,目标是 mysql组。
  • remote_user: 指定远程执行的用户。在这个例子中,我们使用 root 用户。
  • tasks: 包含了一系列要执行的任务。

该yaml解释:

  • 第一行 --- 表示这是一个 YAML 文档的开始。
  • 第二行是一个注释,描述了这个剧本的作用。
  • 第三行定义了目标主机或组,这里是 mysql。
  • 第四行设置了远程执行的用户为 root。
  • 第六行开始定义了一个任务,名字叫做 hello world。
  • 第七行是任务的具体动作,使用 command 模块执行 /usr/bin/wall hello world 命令。/usr/bin/wall 是一个 Linux 命令,用于向所有登录的用户发送消息。在这个例子中,我们会向所有登录到 webrvs 组的用户发送一条消息:“hello world”

如果一切顺利,你会看到类似这样的输出:

在这里插入图片描述

在这里插入图片描述


ansible-vault

  • 用途:此工具可以用于加密解密yml文件

  • 格式:ansible-vault [create|decrypt|edit|encrypt|rekey|view]

示例:

ansible-vault encrypt hello.yml     #加密
ansible-vault decrypt hello.yml     #解密
ansible-vault view hello.yml        #查看
ansible-vault edit  hello.yml       #编辑加密文件
ansible-vault rekey  hello.yml      #修改口令
ansible-vault create new.yml        #创建新文件

ansible-console

  • 用途: 提供交互式的命令行界面,用于执行任务。

  • 格式:

ansible-console

示例:

  • 启动 ansible-console 并切换到特定的组:
ansible-console
# 切换到 `websrvs` 组
cd websrvs
# 列出当前组内的主机
list
# 设置并发数为 10
forks 10
# 在当前组内安装 `httpd`
yum name=httpd state=present
# 启动 `httpd` 服务
service name=httpd state=started

ansible-galaxy

  • 用途: 用于安装、卸载和管理 Ansible 角色。

  • 格式: ansible-galaxy [command]

示例

#列出所有已安装的galaxy
ansible-galaxy list
#安装galaxy
ansible-galaxy install geerlingguy.mysql
ansible-galaxy install geerlingguy.redis
#删除galaxy
ansible-galaxy remove geerlingguy.redis

标签:之旅,ansible,yml,Ansible,模块,工具,hello,galaxy
From: https://blog.csdn.net/m0_60511809/article/details/141096585

相关文章

  • [AHK2] 截图工具之配置文件
    开始紧接着的是配置文件,先前使用的是CustomFs.ahk的前身,实在简陋。现在我们已经实现的完善的配置文件语法,那么使用它吧!先看看之前的配置文件吧:#**除末尾外不要有空行**groupPath:A_ScriptDir\groupgroup:-default-history-test-temphisPath:A_ScriptDir\group\history......
  • [AHK2] 截图工具之历史管理
    开始这是新版MeowPaste工程的第一篇博客,我将履行重写MeowPaste的承诺,使它更好用,代码更优雅。MeowPaste是ahk编写的截图工具,目标是轻量且优雅这次我们来重写历史图片管理,先前的版本太偏执,十分混乱。需要的功能如下:热键贴出历史图片,按时间顺序贴出贴出的图如果关闭了,将放到......
  • 开发者工具Postman接口测试工具使用介绍
    Postman接口测试工具详解Postman是一个功能强大的API测试工具,广泛应用于接口开发和测试过程中。它提供了一个直观的界面来创建、发送和管理API请求,并可以轻松地检查响应。以下是Postman的详细使用指南,包括基本概念、功能和操作步骤。安装和设置安装Postman下载:......
  • BUUCTF 81题吹着贝斯的二维码详解(包含各类工具和python脚本)
    在网上看了很多类似解题步骤和说明,感觉对小白都不友好,于是决定搜集整理下,做个详尽的解题步骤:压缩包解压得到36个无后缀名文件和一个flag.zip压缩包再看压缩包,解压发现有压缩密码,用winhex查看是不是伪加密,在末尾发现一串可疑字符串,拷贝下来留用:GNATOMJVIQZUKNJXGRCTGNRTG......
  • Buuctf 弱口令详解附送图片隐写工具cloacked-pixel安装配置使用实列
    下载一个zip压缩包,解压需要密码,使用bandizip,打开看看,发现注释栏有一些隐藏的东西ctl+c复制在粘贴板,再ctl+v黏贴到sunblime文本编辑软件下是摩斯密码,记录下来......-...-..-----..-.---.-...---在线摩斯密码翻译器HELL0FORUM用此作为密码解压压缩包......
  • 节假日配置初始化 redis缓存方案及@PostConstruct注解,Cache方案GuavaUtils.java工具类
    节假日配置初始化redis缓存方案及@PostConstruct注解,Cache方案GuavaUtils.java工具类启动报错:本机,在jenkins上面没有报错?包括嵌套的注入Beanjava静态代码块和spring@value等注解注入顺序https://www.cnblogs.com/oktokeep/p/15530697.html/***节假日配置初始化redis缓存......
  • 什么是 PPA?详解 Ubuntu 软件安装的强大工具
    在Linux世界中,尤其是Ubuntu和其他基于Debian的发行版,用户通常通过官方软件仓库来安装和管理软件。然而,有时官方仓库中的软件版本可能较旧,或者根本没有你想要的软件。在这种情况下,PPA(PersonalPackageArchive,个人软件包档案)为用户提供了一种灵活且方便的方式来获取最新的......
  • Lua语言基础学习:安装Lua和Lua库管理工具
     Lua语言简介  Lua是一种轻量、高效、可嵌入的脚本语言,由巴西里约热内卢天主教大学的研究小组于1993年开发,Lua的解释器非常小巧,编译后的体积很小(如完整解释器不过200KB),这使得它非常适合嵌入到其他应用程序中。Lua的执行速度快,内存占用低,特别适用于需要高性能的应用场景,支......
  • Java工具类封装微服务间HTTP通信
    在微服务架构中,服务之间通常通过HTTP协议进行通信。为了简化这一过程,我们可以创建一些工具类来封装HTTP请求的发送逻辑。本篇文章将介绍如何使用Java来创建这样的工具类,并分别演示使用ApacheHttpClient和SpringFramework中的RestTemplate来发送HTTPGET请求的方法。1.引言......
  • 【云原生之kubernetes实战】在k8s环境下部署Note Mark笔记工具
    【云原生之kubernetes实战】在k8s环境下部署NoteMark笔记工具一、NoteMark介绍1.1NoteMark简介1.2NoteMark特点1.3NoteMark使用场景二、本次实践介绍2.1本次实践简介2.2本次环境规划2.2k8s存储介绍三、检查k8s环境3.1检查工作节点状态3......