本文共 2796 字,大约阅读时间需要 9 分钟。
服务器部署ansible
被设计为实际工作中最简单的部署工具。 这意味着它不是完整的编程语言。 您可以编写YAML模板来定义任务并列出使作业自动化所需的所有任务。
多数人认为Ansible是“ for循环中的SSH”的增强版本,对于简单的用例来说确实如此。 但是真正的Ansible与任务有关,而不与SSH有关。 在许多使用案例中,我们通过SSH连接,但也支持Windows计算机的Windows远程管理(WinRM),网络设备的不同协议以及作为云服务通用语言的HTTPS API。
在云中,Ansible可以在两个单独的层上运行:控制平面和实例上资源。 控制平面包括未在OS上运行的所有组件。 这包括设置网络,生成实例,设置更高级别的服务(如Amazon的S3或DynamoDB),以及保持云基础架构安全并为客户提供服务所需的其他一切。
实例工作是您已经知道的Ansible的工作:启动和停止服务,配置文件模板,安装软件包以及您可以通过SSH完成的与操作系统相关的所有其他事情。
现在, 怎么样? 根据您的要求,无服务器是不断涌向公共云的最终扩展,或者是全新的范式,其中的一切都是API调用,而这从来没有做过。
Ansible拥有第一个观点。 在“无服务器”成为术语之前,用户必须管理和配置EC2实例,虚拟私有云(VPC)网络以及其他所有内容。 无服务器是朝着托管服务迈出的又一步,它与Ansible的无代理架构很好地结合在一起。
在进入示例之前,让我们看一个用于配置CloudFormation堆栈的简单任务:
- name: Build network cloudformation: stack_name: prod-vpc state: present template: base_vpc.yml
编写这样的任务只需要花费几分钟,但是它将构建基础架构所涉及的最后一个半手工步骤(单击“创建堆栈”)带入了包含所有其他内容的剧本中。 现在,您的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存储桶以及其他任何东西之外,您肯定需要补充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
在 ,我将介绍该示例以及其他深入的部署策略,以充分利用现有的Ansible手册和基础架构以及新的无服务器实践。 无论您是否能够在那里,我都希望这些示例可以帮助您开始使用Ansible,无论您是否需要管理任何服务器。
AnsibleFest是为期 一天的 会议,汇集了数百名Ansible用户,开发人员和行业合作伙伴。 加入我们,了解产品更新,鼓舞人心的演讲,技术深入探讨,动手演示以及网络交流日。 9月7日获得旧金山AnsibleFest的门票 。使用折扣码OPENSOURCE可节省25%的 费用 。
翻译自:
服务器部署ansible
转载地址:http://dgszd.baihongyu.com/