ansible基本使用实操举例

在这里插入图片描述

运行 playbook

1. 配置 Playbook 执行的输出详细程度

ansible-playbook 命令提供的默认输出不提供详细的任务执行信息。ansible-playbook -v 命令提供了额外的信息,总共有四个级别:

选项描述
-v显示任务结果。
-vv任务结果和任务配置都会显示。
-vvv包含关于与受管主机连接的信息。
-vvvv增加了连接插件相关的额外详细程度选项,包括受管主机上用于执行脚本的用户,以及所执行的脚本。

例如,CentOS上运行以下命令来显示详细的执行结果:

ansible-playbook -vvv playbook.yml

该命令会输出关于任务配置和与受管主机连接的详细信息。

2. 语法验证

在执行 playbook 之前,最好要进行验证,确保其内容的语法正确无误。ansible-playbook 命令提供了一个 --syntax-check 选项,可用于验证 playbook 的语法。下面演示了一个 playbook 成功通过语法验证。

ansible-playbook --syntax-check webserver.yml
playbook: webserver.yml

CentOS上运行此命令可以确保 webserver.yml 文件语法正确。

3. 执行空运行

可以使用 -C 选项对 playbook 执行空运行。这会使 Ansible 报告在执行 playbook 时将会发生什么更改,但不会对受管主机进行任何实际的更改。下面演示了一个 playbook 的空运行,它包含单项任务,可确保在受管主机上安装了最新版本的 httpd 软件包。注意该空运行报告此任务会对受管主机产生的更改。

ansible-playbook -C playbook.yml

例如,CentOS上运行以下命令来执行空运行:

ansible-playbook -C install_httpd.yml
4. 编写多个 Play

Playbook 是一个 YAML 文件,含有由一个或多个 play 组成的列表。记住一个 play 按顺序列出了要对清单中的选定主机执行的任务。因此,如果一个 playbook 中含有多个 play,每个 play 可以将其任务应用到单独的一组主机。

---
# This is a simple playbook with two plays

- name: first play
  hosts: web.example.com
  tasks:
    - name: first task
      yum:
        name: httpd
        state: present

    - name: second task
      service:
        name: httpd
        enabled: true

- name: second play
  hosts: database.example.com
  tasks:
    - name: first task
      service:
        name: mariadb
        enabled: true

创建一个名为 multi_playbook.yml 的文件,内容如下:

---
- name: 安装 httpd
  hosts: webservers
  tasks:
    - name: 安装 httpd 包
      yum:
        name: httpd
        state: present

- name: 启动和启用 mariadb
  hosts: dbservers
  tasks:
    - name: 启用 mariadb 服务
      service:
        name: mariadb
        enabled: true
5. 提权执行任务

如果不想在配置文件中指定提权等相关参数,playbook 中也可以结合提权相关参数进行使用。

- name: /etc/hosts is up to date
  hosts: datacenter-west
  remote_user: automation
  become: yes
  tasks:
    - name: server.example.com in /etc/hosts
      lineinfile:
        path: /etc/hosts
        line: '192.0.2.42 server.example.com server'
        state: present

创建一个名为 update_hosts.yml 的文件,内容如下:

---
- name: 更新 /etc/hosts 文件
  hosts: datacenter-west
  remote_user: admin
  become: yes
  tasks:
    - name: 添加 server.example.com 记录
      lineinfile:
        path: /etc/hosts
        line: '192.0.2.43 server.example.com'
        state: present
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

周同学的技术栈

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

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

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

打赏作者

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

抵扣说明:

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

余额充值