日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

Ansible之 AWX 创建管理项目的一些笔记

發(fā)布時(shí)間:2023/12/20 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Ansible之 AWX 创建管理项目的一些笔记 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

寫(xiě)在前面


  • 分享一些 AWX 創(chuàng)建管理項(xiàng)目的筆記
  • 博文內(nèi)容涉及:
    • 容器化 AWX 手工創(chuàng)建項(xiàng)目Demo
    • 通過(guò) SCM 創(chuàng)建項(xiàng)目 Demo
    • 項(xiàng)目角色,更新策略介紹,SCM 憑據(jù)的創(chuàng)建
  • 食用方式: 需要了解 Ansible
  • 理解不足小伙伴幫忙指正

傍晚時(shí)分,你坐在屋檐下,看著天慢慢地黑下去,心里寂寞而凄涼,感到自己的生命被剝奪了。當(dāng)時(shí)我是個(gè)年輕人,但我害怕這樣生活下去,衰老下去。在我看來(lái),這是比死亡更可怕的事。--------王小波


為 Ansible Playbook 創(chuàng)建項(xiàng)目

項(xiàng)目

在 AWX Web 界面中,每個(gè) Ansible 項(xiàng)目都由?個(gè)項(xiàng)目資源來(lái)表示。

AWX 中 項(xiàng)目 代表多個(gè)劇本及其相關(guān)的資源集合,例如,劇本和角色。

常見(jiàn)的項(xiàng)目類(lèi)型有兩種:

  • Manual,從AWX服務(wù)器項(xiàng)目基礎(chǔ)路徑獲取項(xiàng)目資料。該目錄由/etc/tower/settings.py配置,默認(rèn)情況下位于/var/lib/awx/projects。這不是推薦的做法。更新此類(lèi)項(xiàng)目需要在 AWX 界面之外進(jìn)行手動(dòng)干預(yù),而且項(xiàng)目管理員具有直接訪問(wèn)權(quán),以在AWX上更改操作系統(tǒng)環(huán)境。降低了AWX服務(wù)器的安全性。如果是容器環(huán)境,比如 K8s 中,不是合適的創(chuàng)建方式,如果pod調(diào)度,那么是不可預(yù)測(cè)的。需要做成有狀態(tài)應(yīng)用。

  • SCM(source code management),該項(xiàng)目配置為從版本控制系統(tǒng)(也被 AWX 稱(chēng)為源代碼控制管理或 SCM 系統(tǒng))檢索這些資料。 AWX 支持使用 Git、Subversion 或 Mercurial 從 SCM 下載和自動(dòng)獲取項(xiàng)目資料更新的功能。

當(dāng)前的 AWX 為 k8s 集群中部署,我們來(lái)看下對(duì)應(yīng)的處理方式。

┌──[root@vms81.liruilongs.github.io]-[~] └─$kubectl get pods awx-demo-65d9bf775b-hc58x -o yaml | grep -A 4 '/etc/tower/settings.py'- mountPath: /etc/tower/settings.pyname: awx-demo-settingsreadOnly: truesubPath: settings.py- mountPath: /etc/nginx/nginx.conf --- mountPath: /etc/tower/settings.pyname: awx-demo-settingsreadOnly: truesubPath: settings.py- mountPath: /var/run/redis ┌──[root@vms81.liruilongs.github.io]-[~] └─$

這里可以看到,對(duì)應(yīng)配置文件做了 CM 卷掛載上去的。我們找一些具體 的 CM

┌──[root@vms81.liruilongs.github.io]-[~] └─$kubectl get pods awx-demo-65d9bf775b-hc58x -o yaml |grep -A 10 awx-demo-settings | grep -A 5 configMap | grep namename: awx-demo-awx-configmap ┌──[root@vms81.liruilongs.github.io]-[~] └─$

查看配置文件的詳細(xì)信息,確認(rèn)項(xiàng)目目錄

┌──[root@vms81.liruilongs.github.io]-[~] └─$kubectl get cm awx-demo-awx-configmap -o jsonpath='{.data.settings}' import os import socket # Import all so that extra_settings works properly from django_auth_ldap.config import *def get_secret():if os.path.exists("/etc/tower/SECRET_KEY"):return open('/etc/tower/SECRET_KEY', 'rb').read().strip()ADMINS = () STATIC_ROOT = '/var/lib/awx/public/static' STATIC_URL = '/static/' PROJECTS_ROOT = '/var/lib/awx/projects' JOBOUTPUT_ROOT = '/var/lib/awx/job_status' ................. ┌──[root@vms81.liruilongs.github.io]-[~] └─$

創(chuàng)建項(xiàng)目

手動(dòng)創(chuàng)建

手動(dòng)的方式,所以我們需要這 pod 容器內(nèi)部創(chuàng)建,這里我們這了一個(gè)創(chuàng)建好的項(xiàng)目上穿上去。

查看當(dāng)前項(xiàng)目目錄

┌──[root@vms81.liruilongs.github.io]-[~] └─$kubectl exec -it awx-demo-65d9bf775b-hc58x -c awx-demo-task -- bash bash-5.1$ cd /var/lib/awx/projects bash-5.1$ ls bash-5.1$ exit exit

生成一個(gè)角色作為項(xiàng)目,然后 cp 到容器內(nèi)部目錄下

┌──[root@vms81.liruilongs.github.io]-[~/ansible] └─$ansible-galaxy init liruilong_manual - Role liruilong_manual was created successfully ┌──[root@vms81.liruilongs.github.io]-[~/ansible] └─$kubectl cp liruilong_manual awx-demo-65d9bf775b-hc58x:/var/lib/awx/projects/ -c awx-demo-task ┌──[root@vms81.liruilongs.github.io]-[~/ansible] └─$kubectl exec -it awx-demo-65d9bf775b-hc58x -c awx-demo-task -- bash bash-5.1$ cd /var/lib/awx/projects/ bash-5.1$ ls liruilong_manual bash-5.1$

刷新 AWX ,會(huì)看到剛才創(chuàng)建的本地項(xiàng)目

選擇創(chuàng)建

創(chuàng)建成功

SCM 的方式創(chuàng)建

SCM的方式,這里我們選擇通過(guò) github 獲取一個(gè)之前寫(xiě)的角色 https://github.com/LIRUILONGS/ansible_role_keepalived

在源控制中輸入項(xiàng)目路徑

創(chuàng)建后查看狀態(tài)

這里同步失敗 ,因?yàn)檫€沒(méi)有配置 github 的憑據(jù),需要SCM 憑據(jù),下面會(huì)介紹

在容器項(xiàng)目路徑下,可以看到我們同步的項(xiàng)目

┌──[root@vms81.liruilongs.github.io]-[~/ansible] └─$kubectl exec -it awx-demo-65d9bf775b-hc58x -c awx-demo-task -- bash bash-5.1$ cd /var/lib/awx/projects/ bash-5.1$ ls -l total 0 drwxr-xr-x 2 awx root 6 Oct 21 19:20 _6__demo_project -rwxr-xr-x 1 awx root 0 Oct 21 19:20 _6__demo_project.lock drwxr-xr-x 4 awx root 86 Oct 21 18:25 _9__ansible_role_keepalived -rwxr-xr-x 1 awx root 0 Oct 21 18:25 _9__ansible_role_keepalived.lock drwxr-xr-x 10 awx root 154 Oct 21 13:45 liruilong_manual -rwxr-xr-x 1 awx root 0 Oct 21 19:35 liruilong_manual.lock bash-5.1$

項(xiàng)目角色

創(chuàng)建好項(xiàng)目之后需要分配角色

項(xiàng)目可用的角色列表:

  • Admin:授予用戶(hù)對(duì)項(xiàng)目完全的訪問(wèn)權(quán)限。
  • Use:授予用戶(hù)在模板資源中使用項(xiàng)目的權(quán)限。
  • Update:授予用戶(hù)從其 SCM 來(lái)源手動(dòng)更新或計(jì)劃更新項(xiàng)目資料更新的權(quán)限。
  • Read:授予用戶(hù)查看與項(xiàng)目關(guān)聯(lián)的詳細(xì)信息。

管理項(xiàng)目訪問(wèn)權(quán)限

首次創(chuàng)建項(xiàng)目時(shí),用戶(hù)必須擁有該項(xiàng)目的組織的Admin 或 Auitor角色才能訪問(wèn)它。用戶(hù)的其它訪問(wèn)權(quán)限必須經(jīng)過(guò)特別配置。創(chuàng)建項(xiàng)目時(shí)無(wú)法分配角色,必須通過(guò)編輯項(xiàng)目進(jìn)行添加。

創(chuàng)建 SCM 憑據(jù)

源代碼控制憑據(jù)存儲(chǔ)身份驗(yàn)證信息,供 AWX 用來(lái)訪問(wèn)存儲(chǔ)在像 Git 這樣的版本控制系統(tǒng)中的項(xiàng)目中的資料。SCM 憑據(jù)存儲(chǔ)對(duì)源代碼控制存儲(chǔ)庫(kù)訪問(wèn)權(quán)限進(jìn)行身份驗(yàn)證所需的用戶(hù)名和密碼或私鑰。

創(chuàng)建 SCM 憑據(jù)

添加憑據(jù),這里我們使用帳密憑據(jù)

同步項(xiàng)目

SCM 憑據(jù)角色

與計(jì)算機(jī)憑據(jù)一樣,專(zhuān)用 SCM 憑據(jù)僅供其創(chuàng)建者以及 System Administrator 和 System Auditor 用戶(hù)使用。分
配給某一組織的 SCM 憑據(jù)可以與其它用戶(hù)共享,方法是為用戶(hù)或團(tuán)隊(duì)分配該憑據(jù)的角色。

可用的角色列表:

  • Admin:授予用戶(hù)對(duì) SCM 憑據(jù)完全的訪問(wèn)權(quán)限。
  • Use:授予用戶(hù)將 SCM 憑據(jù)與項(xiàng)目資源關(guān)聯(lián)的權(quán)限。
  • Read:授予用戶(hù)查看 SCM 憑據(jù)詳細(xì)信息的權(quán)限。

管理 SCM 憑據(jù)訪問(wèn)權(quán)限

SCM 憑據(jù) 添加角色

首次創(chuàng)建組織憑據(jù)時(shí),只能由特定用戶(hù)進(jìn)行訪問(wèn),其它用戶(hù)的其它權(quán)限必須經(jīng)過(guò)特別配置。

更新項(xiàng)目策略

可以通過(guò)以下方式在 AWX 中更新 SCM 項(xiàng)目資源的策略:

  • 在進(jìn)行更新前刪除任何本地修改。

  • 在進(jìn)行更新前刪除整個(gè)本地存儲(chǔ)庫(kù)。根據(jù)存儲(chǔ)庫(kù)的大小,這可能會(huì)顯著增加完成更新所需的時(shí)間

  • 子模塊將跟蹤其 master 分支(或在 .gitmodules 中指定的其他分支)的最新提交。如果沒(méi)有,子模塊將會(huì)保留在主項(xiàng)目指定的修訂版本中。這等同于在 git submodule update 命令中指定 --remote 標(biāo)志。

  • 每次使用此項(xiàng)目運(yùn)行作業(yè)時(shí),請(qǐng)?jiān)趩?dòng)該作業(yè)前更新項(xiàng)目的修訂。

  • 允許在使用此項(xiàng)目的作業(yè)模板中更改 Source Control 分支或修訂版本。

也可以手動(dòng)更新到最新版本:

對(duì) Ansible 角色的支持

項(xiàng)目可以指定外部 Ansible 角色,它們作為依賴(lài)項(xiàng)存儲(chǔ)在 Ansible Galaxy 或其他源代碼管理存儲(chǔ)庫(kù)中。在項(xiàng)目更新結(jié)束時(shí),如果項(xiàng)?的存儲(chǔ)庫(kù)包括?個(gè)包含有效 requirements.yml 文件的 roles目錄,則紅帽 AWX 將自動(dòng)運(yùn)行 ansible-galaxy 以安裝角色,這個(gè)用到了在研究

博文參考


《DO447 Advanced Automation Ansible Best Practices》

總結(jié)

以上是生活随笔為你收集整理的Ansible之 AWX 创建管理项目的一些笔记的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。