搜索
首页系统教程LINUX使用 Ansible 自动化部署无服务应用

使用 Ansible 自动化部署无服务应用

Jan 05, 2024 pm 11:44 PM
linuxlinux教程红帽linux系统linux命令linux认证红帽linuxlinux视频

导读 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中文网其他相关文章!

声明
本文转载于:Linux就该这么学。如有侵权,请联系admin@php.cn删除
如何使用QEMU在Linux上安装和运行Freedos如何使用QEMU在Linux上安装和运行FreedosApr 29, 2025 am 10:36 AM

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

如何在Linux Mint上安装KDE等离子体22如何在Linux Mint上安装KDE等离子体22Apr 29, 2025 am 10:10 AM

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

如何减少Linux上的高RAM和CPU使用如何减少Linux上的高RAM和CPU使用Apr 29, 2025 am 10:05 AM

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

如何在Almalinux 8/9中启动到单用户模式如何在Almalinux 8/9中启动到单用户模式Apr 29, 2025 am 09:46 AM

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

Linux故障排除:5个常见问题以及如何解决这些问题Linux故障排除:5个常见问题以及如何解决这些问题Apr 29, 2025 am 09:42 AM

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

如何在Linux上永久更改Docker文件夹权限如何在Linux上永久更改Docker文件夹权限Apr 29, 2025 am 09:35 AM

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

像专业人士一样管理Docker:在Linux上安装Portainer CE像专业人士一样管理Docker:在Linux上安装Portainer CEApr 29, 2025 am 09:24 AM

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

如何在Linux上使用Whisper AI进行现场音频转录如何在Linux上使用Whisper AI进行现场音频转录Apr 29, 2025 am 09:18 AM

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

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

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

热工具

MinGW - 适用于 Windows 的极简 GNU

MinGW - 适用于 Windows 的极简 GNU

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

SublimeText3 英文版

SublimeText3 英文版

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

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

Atom编辑器mac版下载

Atom编辑器mac版下载

最流行的的开源编辑器