首頁 系統教程 Linux 使用 Ansible 自動化部署無服務應用

使用 Ansible 自動化部署無服務應用

Jan 05, 2024 pm 11:44 PM
linux linux教程 紅帽 linux系統 linux指令 linux認證 紅帽linux linux視頻

導讀 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中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它們
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

centos和ubuntu的區別 centos和ubuntu的區別 Apr 14, 2025 pm 09:09 PM

CentOS 和 Ubuntu 的關鍵差異在於:起源(CentOS 源自 Red Hat,面向企業;Ubuntu 源自 Debian,面向個人)、包管理(CentOS 使用 yum,注重穩定;Ubuntu 使用 apt,更新頻率高)、支持週期(CentOS 提供 10 年支持,Ubuntu 提供 5 年 LTS 支持)、社區支持(CentOS 側重穩定,Ubuntu 提供廣泛教程和文檔)、用途(CentOS 偏向服務器,Ubuntu 適用於服務器和桌面),其他差異包括安裝精簡度(CentOS 精

centos如何安裝 centos如何安裝 Apr 14, 2025 pm 09:03 PM

CentOS 安裝步驟:下載 ISO 映像並刻錄可引導媒體;啟動並選擇安裝源;選擇語言和鍵盤佈局;配置網絡;分區硬盤;設置系統時鐘;創建 root 用戶;選擇軟件包;開始安裝;安裝完成後重啟並從硬盤啟動。

Centos停止維護2024 Centos停止維護2024 Apr 14, 2025 pm 08:39 PM

CentOS將於2024年停止維護,原因是其上游發行版RHEL 8已停止維護。該停更將影響CentOS 8系統,使其無法繼續接收更新。用戶應規劃遷移,建議選項包括CentOS Stream、AlmaLinux和Rocky Linux,以保持系統安全和穩定。

docker原理詳解 docker原理詳解 Apr 14, 2025 pm 11:57 PM

Docker利用Linux內核特性,提供高效、隔離的應用運行環境。其工作原理如下:1. 鏡像作為只讀模板,包含運行應用所需的一切;2. 聯合文件系統(UnionFS)層疊多個文件系統,只存儲差異部分,節省空間並加快速度;3. 守護進程管理鏡像和容器,客戶端用於交互;4. Namespaces和cgroups實現容器隔離和資源限制;5. 多種網絡模式支持容器互聯。理解這些核心概念,才能更好地利用Docker。

Centos停止維護後的選擇 Centos停止維護後的選擇 Apr 14, 2025 pm 08:51 PM

CentOS 已停止維護,替代選擇包括:1. Rocky Linux(兼容性最佳);2. AlmaLinux(與 CentOS 兼容);3. Ubuntu Server(需要配置);4. Red Hat Enterprise Linux(商業版,付費許可);5. Oracle Linux(與 CentOS 和 RHEL 兼容)。在遷移時,考慮因素有:兼容性、可用性、支持、成本和社區支持。

docker desktop怎麼用 docker desktop怎麼用 Apr 15, 2025 am 11:45 AM

如何使用 Docker Desktop? Docker Desktop 是一款工具,用於在本地機器上運行 Docker 容器。其使用步驟包括:1. 安裝 Docker Desktop;2. 啟動 Docker Desktop;3. 創建 Docker 鏡像(使用 Dockerfile);4. 構建 Docker 鏡像(使用 docker build);5. 運行 Docker 容器(使用 docker run)。

centos怎麼掛載硬盤 centos怎麼掛載硬盤 Apr 14, 2025 pm 08:15 PM

CentOS硬盤掛載分為以下步驟:確定硬盤設備名(/dev/sdX);創建掛載點(建議使用/mnt/newdisk);執行mount命令(mount /dev/sdX1 /mnt/newdisk);編輯/etc/fstab文件添加永久掛載配置;卸載設備使用umount命令,確保沒有進程使用設備。

centos停止維護後怎麼辦 centos停止維護後怎麼辦 Apr 14, 2025 pm 08:48 PM

CentOS 停止維護後,用戶可以採取以下措施應對:選擇兼容髮行版:如 AlmaLinux、Rocky Linux、CentOS Stream。遷移到商業發行版:如 Red Hat Enterprise Linux、Oracle Linux。升級到 CentOS 9 Stream:滾動發行版,提供最新技術。選擇其他 Linux 發行版:如 Ubuntu、Debian。評估容器、虛擬機或云平台等其他選項。

See all articles