系统性介绍Ansible:从入门到实操-Part2(Playbook详解)

Ansible Playbook

1. ansible playbook简介

    Playbook是Ansible的配置、部署和编排语言。它们可以描述你希望远程系统执行的策略,或者一般IT流程中的一组步骤。如果Ansible模块是你日常工作中的工具,那么Playbook就是你的指导手册,而你的主机清单就是你的原材料。在基本级别上,playbook可用于管理远程机器的配置和部署,在更高级的层面上,他们可以对多层部署进行排序。

Playbooks 是 Ansible 的核心功能之一,它们允许你定义复杂的配置策略和工作流。使用 Playbook是 YAML 格式的文件,用于描述一组配置管理任务。

Playbooks提供了一个可重复、可重用、简单的配置管理和多机器部署系统,非常适合部署复杂的应用程序。如果你需要多次使用Ansible执行任务,请编写剧本并将其置于源代码控制之下应该说是提高运维生产效率的最佳选择,你还可以使用playbook向服务器推送的配置或确认远程系统的配置。

playbook可以:

  1.    -- 声明配置。
  2.    -- 按定义的顺序在多台机器上执行任何手动排序过程的步骤。
  3.    -- 同步或异步启动任务。

2. ansible-playbook命令介绍

2.1 ansible-playbook基本语法

ansible-playbook [options] playbook.yml

2.2 Ansible-playbook的常用参数/选项简介

-h:  显示帮助信息。

--version:  显示ansible 版本信息。

-v:  提高输出的详细程度:可以多次使用 -v 来增加详细级别(例如 -vvv)。

-i:  指定主机清单文件。默认情况下,Ansible 会寻找 inventory 或 hosts 文件。

-e/--extra-vars:  传递额外的变量playbook,可以使用 key=value的形式指定多个变量。

-l/--limit:  限制执行的主机列表。

-u/--user:  指定远程主机上的用户名。

-c/--connection:  指定连接类型(如 ssh, paramiko, local 等)。

-b/--become:  使用特权升级机制执行任务(默认为 sudo)。

-k:  用于交互式输入ssh密码。

-K:  用于交互式输入sudo密码。

-f: 用于指定ansible任务执行的并发量,默认为5个。

--become-method:  指定特权升级的方法(如 sudo, su, pbrun 等)。

--become-user:  指定使用特权升级时的目标用户。

--check:  执行 dry-run,即模拟执行而不做实际更改。

--diff:  显示更改前后的差异。

--vault-password-file:  指定包含 Vault 密码的文件路径。

--private-key:  指定私钥文件路径。

--forks:  设置并行执行的最大任务数,默认值为 5。

--list-hosts:  列出清单文件中的所有主机。

--list-tasks:  列出 playbook 中的所有任务。

--list-tags:  列出playbook中的所有标签。

--syntax-check:  检查playbook语法是否正确。

--start-at-task:  从指定的任务开始执行 playbook。

--step:  在每个任务之间暂停,等待用户输入继续。

--tags:  指定要执行的标签。

--skip-tags:  指定要跳过的标签。

3. 一个基本的 Ansible 配置例子

  下面我将展示一个基本的 Ansible 配置例子,该例子包括创建一个Inventory 文件和编写一个简单的 Playbook 来安装 Apache HTTP Server。

3.1  创建 Inventory 文件

首先,我们需要创建一个Inventory 文件来指定 Ansible 将要管理的目标主机,在这个例子中,我将使用一个简单的文件来定义一组 Web 服务器。

inventory文件:

[webservers] 192.168.1.10 192.168.1.11

注:这里我们定义了一个名为 webservers 的主机组,其中包含两台服务器。

3.2  编写 Playbook

接下来,我们将编写一个简单的 Playbook,用于在这些 Web 服务器上安装 Apache HTTP Server。

install_apache.yml文件的内容如下:

```yaml

yaml --

name: Install Apache HTTP Server hosts: webservers become: yes tasks:

name: Ensure Apache is at the latest version package: name: httpd state: latest

name: Start Apache service

service: name: httpd state: started enabled: yes

```

上面的 Playbook 包含了如下部分的内容:

  --name: 描述 Play 的名称。

  --hosts: 指定 Play 应用于哪个主机组。

  --become: 表明需要以 root 用户身份执行任务。

  --tasks: 包含具体的任务列表。

第一个任务 (package) 确保 Apache HTTP Server 已安装并是最新的版本。

第二个任务 (service) 启动 Apache 服务,并设置为开机启动。 

3.3  运行 Playbook

最后,我们将在控制节点上运行 Playbook。确保你已经在控制节点上安装了 Ansible。

运行 Playbook:

bash ansib
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

南山南北山北

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

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

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

打赏作者

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

抵扣说明:

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

余额充值