导读 | Ansible 被设计为实际工作中的最简化的部署工具。这意味着它不是一个完整的编程语言。你需要编写定义任务的 YAML 模板,并列出任何需要自动完成的任务。 |
大多数人认为 Ansible 是一种更强大的“处于 for 循环中的 SSH”,在简单的使用场景下这是真的。但其实 Ansible 是任务,而非 SSH。在很多情况下,我们通过 SSH 进行连接,但它也支持 Windows 机器上的 Windows 远程管理(WinRM),以及作为云服务的通用语言的 HTTPS API 之类的东西。
在云中,Ansible 可以在两个独立的层面上操作:控制面和实例资源。控制面由所有没有运行在操作系统上的东西组成。包括设置网络、新建实例、供给更高级别的服务,如亚马逊的 S3 或 DynamoDB,以及保持云基础设施安全和服务客户所需的一切。
实例上的工作是你已经知道 Ansible 可以做的:启动和停止服务、配置文件模版化、安装软件包以及通过 SSH 执行的所有与操作系统相关的操作。
现在,什么是无服务呢?这要看你问谁,无服务要么是对公有云的无限延伸,或者是一个全新的范例,其中所有的东西都是 API 调用,以前从来没有这样做过。
Ansible 采取第一种观点。在 “无服务” 是专门术语之前,用户不得不管理和配置 EC2 实例、虚拟私有云 (VPC) 网络以及其他所有内容。无服务是托管服务方向迈出的另一步,并且与 Ansible 的无代理体系结构相得益彰。
在我们开始 Lambda 示例之前,让我们来看一个简单的配置 CloudFormation 栈任务:
- name: Build network cloudformation: stack_name: prod-vpc state: present template: base_vpc.yml
编写这样的任务只需要几分钟,但它是构建基础架构所涉及的最后的半手动步骤 - 点击 “Create Stack” - 这将 playbook 与其他放在一起。现在你的 VPC 只是在建立新区域时可以调用的另一项任务了。
由于云提供商是你帐户中发生些什么的真相来源,因此 Ansible 有许多方法来取回并使用 ID、名称和其他参数来过滤和查询运行的实例或网络。以 cloudformation_facts 模块为例,我们可以从我们刚刚创建的模板中得到子网 ID、网络范围和其他数据。
- name: Pull all new resources back in as a variable cloudformation_facts: stack_name: prod-vpc register: network_stack
对于无服务应用,除了 DynamoDB 表,S3 bucket 和其他任何其他功能之外,你肯定还需要一个 Lambda 函数的补充。幸运的是,通过使用 lambda 模块, Lambda 函数可以以上次任务的堆栈相同的方式创建:
- lambda: name: sendReportMail zip_file: "{{ deployment_package }}" runtime: python3.6 handler: report.send memory_size: 1024 role: "{{ iam_exec_role }}" register: new_function
如果你有其他想用来交付无服务应用的工具,这也是可以的。开源的无服务框架有自己的 Ansible 模块,它也可以工作:
- serverless: service_path: '{{ project_dir }}' stage: dev register: sls - name: Serverless uses CloudFormation under the hood, so you can easily pull info back into Ansible cloudformation_facts: stack_name: "{{ sls.service_name }}" register: sls_facts
这不是你需要的全部,因为无服务项目也必须存在,你将在那里大量的定义你的函数和事件源。对于此例,我们将制作一个响应 HTTP 请求的函数。无服务框架使用 YAML 作为其配置语言(和 Ansible 一样),所以这应该看起来很熟悉。
# serverless.yml service: fakeservice provider: name: aws runtime: python3.6 functions: main: handler: test_function.handler events: - http: path: / method: get
在 AnsibleFest 中,我将介绍这个例子和其他深入的部署策略,以最大限度地利用你已经拥有的 playbook 和基础设施,还有新的无服务实践。无论你是否能到,我希望这些例子可以让你开始使用 Ansible,无论你是否有任何服务要管理。
AnsibleFest 是一个单日会议,汇集了数百名 Ansible 用户、开发人员和行业合作伙伴。加入我们吧,这里有产品更新、鼓舞人心的交谈、技术深度潜水,动手演示和整天的网络。
以上是使用 Ansible 自动化部署无服务应用的详细内容。更多信息请关注PHP中文网其他相关文章!

本指南向您展示了如何使用QEMU模拟器在Linux环境中设置免费和开源DOS的操作系统Freedos。 这使您可以在现代硬件上运行Legacy DOS软件和游戏,而无需分开

Linux Mint,这款以简洁、稳定和易用性着称的操作系统,广受用户欢迎,尤其适合新手。 它默认使用Cinnamon桌面环境,提供简洁友好的用户界面。但如果您偏好不同的外观或需要更多自定义选项,可以安装其他桌面环境,例如KDE Plasma。 KDE Plasma是一个功能丰富、高度可定制且视觉效果出色的桌面环境,提供现代时尚的用户体验。它拥有广泛的自定义选项、高级窗口管理功能和精致的美感,非常适合希望更好地掌控桌面体验的用户。 本指南将逐步指导您在Linux Mint 22上安装KDE Pl

Linux系统性能优化:降低RAM和CPU使用率 Linux系统功能强大且高效,但高RAM和CPU使用率会降低性能,减慢应用程序速度,甚至导致服务器、工作站或嵌入式系统崩溃。因此,优化资源使用对于系统平稳运行至关重要。 本指南将探讨降低Linux系统RAM和CPU使用率的实用方法,涵盖监控工具、进程管理、内核调整和系统优化技术,帮助您保持系统高效运行。 识别资源密集型进程 降低RAM和CPU使用率的第一步是识别哪些进程消耗了最多的资源。为此,可以使用以下几个命令行工具: a. 使用top

AlmaLinux 8 和 9 的单用户模式 (也称为救援模式) 指南 单用户模式是一个精简的 Linux 环境,允许系统管理员执行维护任务、排查问题和从系统故障中恢复。当您需要重置 root 密码、修复配置错误、修复损坏的文件系统或调查阻止正常启动的系统错误时,单用户模式特别有用。 作为基于 RHEL 的发行版,AlmaLinux 8 和 9 通过 GRUB 引导加载程序提供了一种简单的进入单用户模式的方法。本指南将逐步解释如何在 AlmaLinux 8 和 9 上进入单用户模式。 什么是单用

Linux系统以其强大和可靠性着称,但即使是经验丰富的用户也会遇到意想不到的问题。无论是意外删除的文件、忘记的root密码,还是系统运行缓慢,高效的故障排除技巧是成为Linux专家的关键。 本指南将介绍一些常见的Linux问题解决场景以及逐步解决方案,这些问题在系统管理员、开发人员和日常Linux用户中普遍存在。 场景一:意外删除重要文件 您意外地使用rm命令删除了一个重要文件,现在需要恢复它。与Windows和macOS不同,Linux没有内置的“回收站”来存储从终端删除的文件。 恢复选项取决

Docker 是一款强大的工具,允许您在称为 容器 的隔离环境中运行应用程序。但是,有时您可能需要更改 Docker 文件夹的权限,以确保您的应用程序可以访问必要的文 件和目录。 本文将指导您完成在 Linux 系统上永久更改 Docker 文件夹权限的过程。 了解 Docker 文件夹权限 默认情况下,Docker 将其数据(包括镜像、容器和卷)存储在 Linux 系统上的特定目录中。最常见的目录是 /var/lib/docker。 这些文件夹的权限决定了谁可以读取、写入或执行其中的文件。如果

用Linux上的Portainer CE简化Docker Management:逐步指南 通过命令行管理Docker容器可能令人生畏,尤其是对于新移民而言。 Portainer CE(社区版)提供免费,轻巧且直观的Solutio

本指南详细介绍了如何在Linux系统上安装和使用Whisper AI进行实时语音到文本转录。 Whisper AI是一种Openai创作,可提供多种语言的高准确性转录。虽然主要是为批处理设计的


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

MinGW - 适用于 Windows 的极简 GNU
这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

SublimeText3 英文版
推荐:为Win版本,支持代码提示!

SublimeText3 Linux新版
SublimeText3 Linux最新版

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

Atom编辑器mac版下载
最流行的的开源编辑器