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

系列文章

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不怕娜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值