在Ubuntu 14.04上为配置管理设置Ansible:创建剧本

Ansible中的剧本使Ansible如此方便。剧本允许使用多个模块执行例行任务。我们什么时候应该使用剧本?

让我们看一下例行维护任务:更新服务器。鉴于这只是一个命令,我们将不必使用剧本apt-get update。我们可以只使用一个命令来更新所有服务器上的软件。但是,为了部署Web或数据库服务器之类的东西,需要做更多的工作:不仅仅是一个命令。剧本就是这种情况的完美体现。它们允许您使用多个模块,这些模块是可以在服务器上执行的命令。例如,有一些模块用于复制文件和通过SSH执行Shell命令。

那么我们如何使用剧本呢?让我们开始吧!

步骤1:建立YAML(.yml)档案

Ansible剧本作为.yml文件编写;Ansible无法解释其他格式。Ansible剧本示例如下所示:

---
- hosts: webservers
  vars:
    http_port: 80
    max_clients: 200
  remote_user: root
  tasks:
  - name: ensure apache is at the latest version
    yum: pkg=httpd state=latest
  - name: write the apache config file
    template: src=/srv/httpd.j2 dest=/etc/httpd.conf
    notify:
    - restart apache
  - name: ensure apache is running (and enable it at boot)
    service: name=httpd state=started enabled=yes
  handlers:
    - name: restart apache
      service: name=httpd state=restarted

(摘自Ansible的文档)

步骤2:了解剧本:任务和处理程序

如您所见,该手册中有多个部分。首先,您将看到该hosts:行。这确定了应该在哪个主机上执行剧本。您还可以看到我们定义了几个变量,可以在整个剧本中访问和使用。然后,您将看到许多任务。例如,这些任务可以命名为“ Install Apache”。该示例中的第二个任务将写入Apache配置。然后,您将看到以下内容:

    notify:
    - restart apache

这告诉任务执行某个处理程序。在这种情况下,它指的是handler restart apache,可以在剧本的底部找到:

  handlers:
    - name: restart apache
      service: name=httpd state=restarted

处理程序很方便,因为以该示例为例,您可能需要多次重新启动Apache。在这种情况下,您不必在每次需要重新启动Apache时都重复创建任务,而是每次都可以引用相同的处理程序。

步骤3:执行剧本

假设您要部署Apache服务器。好了,正如您所看到的,我们为此创建了一个剧本。可以通过使用ansible-playbook命令来执行剧本。例如,如果我们要在webservers类别中的所有服务器上执行此剧本(您需要在/etc/ansible/hosts文件中包含此类别),则假定剧本文件的名称为,则可以运行以下命令apache.yml

ansible-playbook -i webservers apache.yml

恭喜你!现在,您已在webservers类别中的所有服务器上执行了一个剧本。现在,您只需要等待部署完成即可,并且您会看到Apache已在这些服务器上成功安装和配置。



Leave a Comment

如何在CentOS 7上安装Oxwall

如何在CentOS 7上安装Oxwall

Oxwall是一个开源社交网络软件平台,可用于免费构建自定义社交网站(SNS)。在这篇文章中,

在Ubuntu上设置Nginx以流式传输实时HLS视频

在Ubuntu上设置Nginx以流式传输实时HLS视频

HTTP Live Streaming(HLS)是由Apple Inc.实现的一种非常强大的流视频协议。HLS使用HTTP事务来遍历防火墙,代理,

在Ubuntu上安装Spigot

在Ubuntu上安装Spigot

Spigot是对Minecraft服务器软件CraftBukkit的修改。Spigot优化了服务器资源的使用,确保您的播放器获得最佳体验

如何在Debian 9 LAMP VPS上安装October 1.0 CMS

如何在Debian 9 LAMP VPS上安装October 1.0 CMS

使用其他系统?October 1.0 CMS是基于Laravel框架构建的简单,可靠,免费和开源的内容管理系统(CMS)

如何在Debian 9上安装Monica

如何在Debian 9上安装Monica

使用其他系统?Monica是一个开源的个人关系管理系统。可以将其视为CRM(销售团队使用的一种流行工具

如何在Fedora 26 LAMP VPS上安装MODX Revolution

如何在Fedora 26 LAMP VPS上安装MODX Revolution

使用其他系统?MODX Revolution是一种快速,灵活,可扩展,免费和开源的企业级内容管理系统(CMS),由

在Fedora 28上安装Anchor CMS

在Fedora 28上安装Anchor CMS

使用其他系统?Anchor是用PHP编写的轻量级开源博客CMS。Anchors源代码托管在GitHub上。本指南将向您展示

如何在Ubuntu 16.04上安装Taiga项目管理工具

如何在Ubuntu 16.04上安装Taiga项目管理工具

使用其他系统?Taiga是用于项目管理的免费和开源应用程序。与其他项目管理工具不同,Taiga使用增量

在Ubuntu上配置Nagios:第1部分-Nagios服务器

在Ubuntu上配置Nagios:第1部分-Nagios服务器

本文是有关在Ubuntu 14.04上安装和配置Nagios的2部分系列文章的一部分。第1部分:Nagios服务器第2部分:远程主机概述Nagio

如何在Debian 9上安装Grav CMS

如何在Debian 9上安装Grav CMS

使用其他系统?Grav是用PHP编写的开源平面文件CMS。Grav源代码公开托管在GitHub上。本指南将向您展示如何

如何在Fedora 26 LAMP VPS上安装Pagekit 1.0 CMS

如何在Fedora 26 LAMP VPS上安装Pagekit 1.0 CMS

使用其他系统?Pagekit 1.0 CMS是一个美观,模块化,可扩展,轻量级,免费和开源的内容管理系统(CMS),具有

如何在Ubuntu 16.04 LAMP VPS上安装BigTree CMS

如何在Ubuntu 16.04 LAMP VPS上安装BigTree CMS

使用其他系统?BigTree CMS 4.2是一种快速,轻量级,免费和开源的企业级内容管理系统(CMS),具有广泛的功能。

如何在CentOS 7上设置vsFTPd

如何在CentOS 7上设置vsFTPd

FTP是用于通过Internet传输文件的有用协议,本指南将向您展示如何设置vsFTPd(非常安全的文件传输协议守护程序)o

如何在Ubuntu 16.04上安装GitBucket

如何在Ubuntu 16.04上安装GitBucket

本指南涵盖了针对运行Ubuntu 16.04的Vultr实例的GitBucket的基本安装和设置,并假定您正在以以下方式执行命令:

如何在Fedora 29上安装Attendize

如何在Fedora 29上安装Attendize

使用其他系统?简介Attendize是一个基于Laravel PHP框架的开源门票销售和事件管理平台。Attendiz

如何在CentOS 7上安装BoltWire CMS

如何在CentOS 7上安装BoltWire CMS

使用其他系统?简介BoltWire是一个用PHP编写的免费,轻量级的内容管理系统。与大多数其他内容管理人员相比

如何在Ubuntu 16.04 LAMP VPS上安装Selfoss RSS Reader

如何在Ubuntu 16.04 LAMP VPS上安装Selfoss RSS Reader

使用其他系统?Selfoss RSS Reader是一种免费的开源自托管基于Web的多功能实时流,mashup,新闻提要(RSS / Atom)阅读器

如何在Ubuntu 16.04 LAMP VPS上安装Paste 2.1

如何在Ubuntu 16.04 LAMP VPS上安装Paste 2.1

使用其他系统?Paste 2.1是一个简单,灵活,免费和开源的pastebin应用程序,用于存储代码,文本等。最初是

如何在Ubuntu 16.04上安装Dolibarr

如何在Ubuntu 16.04上安装Dolibarr

使用其他系统?Dolibarr是面向企业的开源企业资源计划(ERP)和客户关系管理(CRM)。多利巴尔

如何在CentOS 7上安装Microweber

如何在CentOS 7上安装Microweber

使用其他系统?Microweber是一个开放源代码的拖放式CMS和在线商店。Microweber源代码托管在GitHub上。本指南将向您展示

AI 能否應對越來越多的勒索軟件攻擊?

AI 能否應對越來越多的勒索軟件攻擊?

勒索軟件攻擊呈上升趨勢,但人工智能能否幫助應對最新的計算機病毒?AI 是答案嗎?在這裡閱讀知道是 AI 布恩還是禍根

ReactOS:這是 Windows 的未來嗎?

ReactOS:這是 Windows 的未來嗎?

ReactOS,一個開源和免費的操作系統,這裡有最新版本。它能否滿足現代 Windows 用戶的需求並打倒微軟?讓我們更多地了解這種老式但更新的操作系統體驗。

通過 WhatsApp 桌面應用程序 24*7 保持聯繫

通過 WhatsApp 桌面應用程序 24*7 保持聯繫

Whatsapp 終於為 Mac 和 Windows 用戶推出了桌面應用程序。現在您可以輕鬆地從 Windows 或 Mac 訪問 Whatsapp。適用於 Windows 8+ 和 Mac OS 10.9+

人工智能如何將流程自動化提升到新的水平?

人工智能如何將流程自動化提升到新的水平?

閱讀本文以了解人工智能如何在小型公司中變得流行,以及它如何增加使它們成長並為競爭對手提供優勢的可能性。

macOS Catalina 10.15.4 補充更新引發的問題多於解決

macOS Catalina 10.15.4 補充更新引發的問題多於解決

最近,Apple 發布了 macOS Catalina 10.15.4 補充更新以修復問題,但似乎該更新引起了更多問題,導致 mac 機器變磚。閱讀這篇文章以了解更多信息

大數據的13個商業數據提取工具

大數據的13個商業數據提取工具

大數據的13個商業數據提取工具

什麼是日誌文件系統,它是如何工作的?

什麼是日誌文件系統,它是如何工作的?

我們的計算機以稱為日誌文件系統的有組織的方式存儲所有數據。這是一種有效的方法,可以讓計算機在您點擊搜索時立即搜索和顯示文件。 https://wethegeek.com/?p=94116&preview=true

技術奇點:人類文明的遙遠未來?

技術奇點:人類文明的遙遠未來?

隨著科學的快速發展,接管了我們的大量工作,我們陷入無法解釋的奇點的風險也在增加。閱讀,奇點對我們意味著什麼。

洞察 26 種大數據分析技術:第 1 部分

洞察 26 種大數據分析技術:第 1 部分

洞察 26 種大數據分析技術:第 1 部分

2021 年人工智能對醫療保健的影響

2021 年人工智能對醫療保健的影響

過去幾十年,醫療保健領域的人工智能取得了巨大飛躍。因此,醫療保健中人工智能的未來仍在日益增長。