ython 專案啟動 Python 學習
開始使用 Python 腳本進行 DevOps 自動化
?介紹
歡迎來到 DevOps 和 Python 的世界
人們普遍認為 DevOps 工程師不編碼,但事實並非如此。 DevOps 工程師通常依靠程式設計技能來自動化流程、管理基礎架構和簡化工作流程。 Python 和 Go 因其多功能性和易用性而成為 DevOps 世界中最受歡迎的兩種語言。
今天,我們將踏上令人興奮的旅程,創建三個 Python 項目,它們不僅向您介紹程式設計的關鍵,還幫助您建立有意義的實用應用程式。
以下是我們將要探索的內容:
- 天氣程序 — 一個將城市名稱作為使用者輸入並顯示其當前天氣的程式。 (我們將使用 WeatherAPI 取得 JSON 格式的資料 — 聽起來很令人興奮,對吧?)
- GitHub Pull Request Tracker — 一個即時項目,用於列出使用 GitHub 的 API 向 GitHub 儲存庫發出 Pull 請求的使用者。
- SlackBot for Jenkins Pipeline — 一個專案的奇蹟,它觸發 Jenkins 管道並透過自訂 SlackBot 將其狀態傳遞到您的 Slack 通道。
那麼,你準備好踏上這段旅程了嗎?讓我們開始吧!
?先決條件
在我們深入編碼之前,讓我們確保您擁有開始所需的一切。這些項目適合初學者,但擁有以下工具和技能將使過程更加順利:
1。 Python基礎知識
了解變數、函數、迴圈以及如何使用函式庫將會很有幫助。如果您是新手,請不要擔心 - 這些項目將加強您的學習!
2。 Python環境
確保您的系統上安裝了 Python。您可以從 python.org 下載它。也推薦使用 VS Code 或 PyCharm 等程式碼編輯器。
3。 API 基礎
您將在所有三個項目中使用 API。熟悉發出 HTTP 請求和處理 JSON 回應是一個額外的好處,但我將引導您完成每個步驟。
4。要安裝的工具
- 用於進行 API 呼叫的 requests 函式庫。使用 pip install requests 安裝它。
- 第三個項目的 Slack API 憑證和設定。不用擔心;當我們到達那裡時我會提供詳細的說明。
- 第二個專案的 GitHub 帳戶和第三個專案的 Jenkins 存取權限。
一旦您準備好這些先決條件,我們就可以開始我們的第一個專案 - 建立天氣程序!
?項目一:天氣計劃
讓我們深入研究我們的第一個 Python 專案—天氣程式。這個簡單而實用的腳本將接受用戶輸入的城市名稱並顯示其當前天氣。為了實現這一目標,我們將使用 WeatherAPI 來獲取 JSON 格式的即時天氣數據,並以用戶友好的方式顯示它。
工作原理:
- 腳本提示使用者輸入城市名稱。
- 使用 WeatherAPI 和 API 金鑰,腳本取得指定城市的天氣資料。
- 來自 API 的 JSON 回應被解析以提取溫度、風速和天氣狀況等資訊。
- 結果以簡潔、可讀的格式顯示。
逐步說明:
-
建立一個Python檔:
- 開啟您喜歡的程式碼編輯器(建議使用 VS Code 或 PyCharm)並建立一個名為weather.py 的新檔案。
- 插入以下程式碼:
import requests def get_city_weather(city, api_key): city_name = city.lower() url = f"http://api.weatherapi.com/v1/current.json?key={api_key}&q={city_name}" response = requests.get(url) if response.status_code == 200: data = response.json() description = data['current']['condition']['text'] temp = data['current']['temp_c'] wind = data['current']['wind_kph'] print(f"\nWeather in {city.capitalize()}:") print(f"Temperature: {temp}°C") print(f"Wind Speed: {wind} Km/hr") print(f"Condition: {description.capitalize()}") else: print(f"{city_name} not found.") def main(): city = input("Enter Your City: ") API_KEY = "<Your_API_KEY>" get_city_weather(city, API_KEY) if __name__ == "__main__": main()
-
設定您的 API 金鑰:
- 造訪 WeatherAPI 並建立免費帳戶。
- 登入後,選擇免費方案產生您的 API 金鑰。
複製 API 金鑰並在程式碼中替換為實際金鑰。
-
執行腳本:
- 在儲存weather.py的資料夾中開啟終端機。
- 使用 python Weather.py 運行腳本。
- 出現提示時輸入城市名稱(例如「Ganganagar」)。該腳本將顯示該城市當前的天氣狀況。
範例輸出:
Enter Your City: Ganganagar Weather in Ganganagar: Temperature: 24°C Wind Speed: 10 Km/hr Condition: Clear
就是這樣!您已經成功創建了您的第一個 Python 專案。這是一種簡單而強大的方式來了解 API 如何在現實應用程式中運作。
?專案 2:GitHub 拉取請求追蹤器
現在,讓我們建立一個 GitHub Pull Request (PR) 追蹤器。該專案利用 GitHub API 來獲取有關特定儲存庫的拉取請求的詳細資訊。我們將過濾資料以提取 PR 建立者的使用者名,計算每個建立者建立的 PR 數量,並顯示此資訊。
工作原理:
- 此腳本向 GitHub API 發出 HTTP GET 請求,以取得儲存庫的拉取請求詳細資訊。
- 它解析 JSON 回應以提取 PR 創建者的使用者名稱。
- 這些使用者名稱儲存在字典中,並包含他們創建的 PR 數量。
- 程式輸出字典和 PR 創建者的詳細列表及其各自的計數。
逐步說明:
-
建立一個Python檔:
- 開啟程式碼編輯器並建立一個名為 gb_tracker.py 的新檔案。
- 插入以下程式碼:
import requests def get_city_weather(city, api_key): city_name = city.lower() url = f"http://api.weatherapi.com/v1/current.json?key={api_key}&q={city_name}" response = requests.get(url) if response.status_code == 200: data = response.json() description = data['current']['condition']['text'] temp = data['current']['temp_c'] wind = data['current']['wind_kph'] print(f"\nWeather in {city.capitalize()}:") print(f"Temperature: {temp}°C") print(f"Wind Speed: {wind} Km/hr") print(f"Condition: {description.capitalize()}") else: print(f"{city_name} not found.") def main(): city = input("Enter Your City: ") API_KEY = "<Your_API_KEY>" get_city_weather(city, API_KEY) if __name__ == "__main__": main()
執行腳本:
- 在包含 gb_tracker.py 的資料夾中開啟終端。
- 使用 python gb_tracker.py 運行腳本。
預期輸出:
當腳本成功運行時,它會從 argoproj/argo-cd 儲存庫獲取拉取請求的詳細資訊。這將顯示以下輸出:
Enter Your City: Ganganagar Weather in Ganganagar: Temperature: 24°C Wind Speed: 10 Km/hr Condition: Clear
用例:
- 開發環境:用它來監控儲存庫中的 PR 活動並追蹤貢獻者。
- 協作:確定頻繁貢獻者及其活動水平,以實現更好的團隊管理。
就是這樣!一個功能腳本,可從 GitHub 獲取即時數據並對其進行處理以獲取真實世界的見解。
?項目 3:用於 Jenkins Pipeline 的 SlackBot
我們的最終專案是一個 gem - 一個整合 Jenkins 和 Slack 以自動產生通知的腳本。此 Python 腳本觸發 Jenkins 管道,監視其狀態,並在管道完成時向您的 Slack 通道發送通知。
工作原理:
- 觸發管道:腳本先觸發 Jenkins 管道。
- 監控建置狀態:定期檢查管道的狀態,直到建置完成。
- 發送 Slack 通知:建置完成後,腳本會使用 Slack 機器人在指定的 Slack 頻道中通知狀態。
逐步說明:
建立 Python 檔案:
在程式碼編輯器中建立一個名為 jenkins-slack-integration.py 的檔案。
插入以下程式碼:
import requests url = 'https://api.github.com/repos/argoproj/argo-cd/pulls' response = requests.get(url) if response.status_code == 200: pull_requests = response.json() pr_creators = {} for pull in pull_requests: creator = pull['user']['login'] if creator in pr_creators: pr_creators[creator] += 1 else: pr_creators[creator] = 1 print(f"PR Creator counts: {pr_creators}") for creator, count in pr_creators.items(): print(f"Creator: {creator}: {count} PRs") else: print(f"Failed to make connection. Status Code: {response.status_code}")
設定 Jenkins:
在 Jenkins 中建立一個名為 Jenkins-Python-pipeline 的管道專案。
新增以下 Hello World 管道腳本:
PR Creator counts: {'dependabot[bot]': 7, 'devopsjedi': 1, 'aali309': 3, 'adriananeci': 1, 'amine7536': 1, 'lf32': 1, 'OpenGuidou': 1, 'ivan-cai': 1, 'surajyadav1108': 2, 'vasilegroza': 1, 'toyamagu-2021': 1, 'dvcanton': 1, 'vivian-xu': 1, 'rahulbollisetty': 1, 'blakepettersson': 1, 'dacofr': 1, 'mrysavy': 1, 'damsien': 1, 'lsq645599166': 1, 'jpbelangerupgrade': 1, 'Aaron-9900': 1} Creator: dependabot[bot]: 7 PRs Creator: devopsjedi: 1 PRs Creator: aali309: 3 PRs Creator: adriananeci: 1 PRs Creator: amine7536: 1 PRs Creator: lf32: 1 PRs Creator: OpenGuidou: 1 PRs Creator: ivan-cai: 1 PRs Creator: surajyadav1108: 2 PRs Creator: vasilegroza: 1 PRs Creator: toyamagu-2021: 1 PRs Creator: dvcanton: 1 PRs Creator: vivian-xu: 1 PRs Creator: rahulbollisetty: 1 PRs Creator: blakepettersson: 1 PRs Creator: dacofr: 1 PRs Creator: mrysavy: 1 PRs Creator: damsien: 1 PRs Creator: lsq645599166: 1 PRs Creator: jpbelangerupgrade: 1 PRs Creator: Aaron-9900: 1 PRs # The details will vary accroding to the time when you run the script.
產生 Jenkins API 令牌:
- 前往您的 Jenkins 使用者設定。
- 建立一個新令牌並複製它。
- 替換 在帶有此標記的腳本中。
設定 Slack:
- 建立一個名為#devops-updates 的 Slack 頻道。
- 創建一個名為 demo 的機器人並邀請其加入頻道。
- 產生機器人令牌並在腳本中替換為該令牌。
執行腳本:
- 在運行之前,請確保您已在 #devops-updates 中使用 inform@demo 將機器人新增至 slack 通道。
- 使用 python jenkins-slack-integration.py 執行腳本。
- 管道完成後,機器人將在 Slack 通道中發布一條包含管道狀態的消息。
Slack 中的範例輸出:
管道已成功構建,狀態:**成功**
這個專案是 Python 如何彌合 CI/CD 工具和通訊平台之間的差距、自動通知並改善協作的絕佳範例。
?結論
恭喜您完成這三個令人興奮的 Python 專案!每個專案都旨在教您如何在現實場景中使用 Python:
- 天氣程式:向您展示如何使用 API 並處理 JSON 資料來取得和顯示有意義的資訊。
- GitHub PR Tracker:教您如何與 GitHub 的 API 互動並以結構化格式處理即時資料。
- SlackBot for Jenkins Pipeline:展示了 Python 自動化 DevOps 任務並透過無縫整合增強團隊溝通的能力。
這些項目只是冰山一角。當您進一步探索時,您將看到 Python 的多功能性如何使其成為任何 DevOps 工程師的必備技能。除了編碼之外,它還可以實現自動化、提高生產力,並彌合複雜工作流程和使用者友好的解決方案之間的差距。
不斷建構、實驗和學習-這就是 Python 和 DevOps 的本質!請記住,掌握程式設計的最好方法就是實踐。
感謝您加入我的旅程!如果您喜歡這個博客,請隨時與您的朋友和其他學習者分享。
?如需了解更多資訊博客,請在 Hashnode、X(Twitter) 和 LinkedIn 上關注我。
到此為止,祝您編碼愉快! !
快樂學習! ?
以上是ython 專案啟動 Python 學習的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

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

Python适合数据科学、Web开发和自动化任务,而C 适用于系统编程、游戏开发和嵌入式系统。Python以简洁和强大的生态系统著称,C 则以高性能和底层控制能力闻名。

Python在遊戲和GUI開發中表現出色。 1)遊戲開發使用Pygame,提供繪圖、音頻等功能,適合創建2D遊戲。 2)GUI開發可選擇Tkinter或PyQt,Tkinter簡單易用,PyQt功能豐富,適合專業開發。

兩小時內可以學到Python的基礎知識。 1.學習變量和數據類型,2.掌握控制結構如if語句和循環,3.了解函數的定義和使用。這些將幫助你開始編寫簡單的Python程序。

2小時內可以學會Python的基本編程概念和技能。 1.學習變量和數據類型,2.掌握控制流(條件語句和循環),3.理解函數的定義和使用,4.通過簡單示例和代碼片段快速上手Python編程。

Python更易學且易用,C 則更強大但複雜。 1.Python語法簡潔,適合初學者,動態類型和自動內存管理使其易用,但可能導致運行時錯誤。 2.C 提供低級控制和高級特性,適合高性能應用,但學習門檻高,需手動管理內存和類型安全。

Python在web開發、數據科學、機器學習、自動化和腳本編寫等領域有廣泛應用。 1)在web開發中,Django和Flask框架簡化了開發過程。 2)數據科學和機器學習領域,NumPy、Pandas、Scikit-learn和TensorFlow庫提供了強大支持。 3)自動化和腳本編寫方面,Python適用於自動化測試和系統管理等任務。

要在有限的時間內最大化學習Python的效率,可以使用Python的datetime、time和schedule模塊。 1.datetime模塊用於記錄和規劃學習時間。 2.time模塊幫助設置學習和休息時間。 3.schedule模塊自動化安排每週學習任務。

Python在自動化、腳本編寫和任務管理中表現出色。 1)自動化:通過標準庫如os、shutil實現文件備份。 2)腳本編寫:使用psutil庫監控系統資源。 3)任務管理:利用schedule庫調度任務。 Python的易用性和豐富庫支持使其在這些領域中成為首選工具。
