真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

怎么使用Ansible安裝軟件

這篇文章主要介紹了怎么使用Ansible安裝軟件,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

十多年的祥云網(wǎng)站建設經(jīng)驗,針對設計、前端、開發(fā)、售后、文案、推廣等六對一服務,響應快,48小時及時工作處理。全網(wǎng)整合營銷推廣的優(yōu)勢是能夠根據(jù)用戶設備顯示端的尺寸不同,自動調(diào)整祥云建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設計,從而大程度地提升瀏覽體驗。成都創(chuàng)新互聯(lián)公司從事“祥云網(wǎng)站設計”,“祥云網(wǎng)站推廣”以來,每個客戶項目都認真落實執(zhí)行。

使用 Ansible 劇本自動安裝和更新設備上的軟件。

Ansible 是系統(tǒng)管理員和開發(fā)人員用來保持計算機系統(tǒng)處于最佳狀態(tài)的一種流行的自動化工具。與可擴展框架一樣,Ansible 本身功能有限,它真正的功能體現(xiàn)在許多模塊中。在某種程度上,Ansible 模塊就是 Linux 系統(tǒng)的命令。它們針對特定問題提供解決方案,而維護計算機時的一項常見任務是使所有計算機的更新和一致。

我曾經(jīng)使用軟件包的文本列表來保持系統(tǒng)或多或少的同步:我會列出筆記本電腦上安裝的軟件包,然后將其與臺式機或另一臺服務器之間進行交叉參考,手動彌補差異。當然,在  Linux 機器上安裝和維護應用程序是 Ansible 的一項基本功能,這意味著你可以在自己關(guān)心的計算機上列出所需的內(nèi)容。

尋找正確的 Ansible 模塊

Ansible 模塊的數(shù)量非常龐大,如何找到能完成你任務的模塊?在 Linux 中,你可以在應用程序菜單或 /usr/bin 中查找要運行的應用程序。使用 Ansible 時,你可以參考 Ansible 模塊索引。

這個索引按照類別列出。稍加搜索,你就很可能找到所需的模塊。對于包管理,Packaging 模塊幾乎適用于所有帶包管理器的系統(tǒng)。

動手寫一個 Ansible 劇本

首先,選擇本地計算機上的包管理器。例如,如果你打算在運行 Fedora 的筆記本電腦上編寫 Ansible 指令(在 Ansible 中稱為“劇本playbook”),那么從 dnf 模塊開始。如果你在 Elementary OS 上編寫,使用 apt 模塊,以此類推。這樣你就可以開始進行測試和驗證,并可以在以后擴展到其它計算機。

第一步是創(chuàng)建一個代表你的劇本的目錄。這不是絕對必要的,但這是一個好習慣。Ansible 只需要一個配置文件就可以運行在 YAML 中,但是如果你以后想要擴展劇本,你就可以通過改變目錄和文件的方式來控制 Ansible?,F(xiàn)在,只需創(chuàng)建一個名為 install_packages 或類似的目錄:

$ mkdir ~/install_packages

你可以根據(jù)自己的喜好來命名 Ansible 的劇本,但通常將其命名為 site.yml

$ touch ~/install_packages/site.yml

在你最喜歡的文本編輯器中打開 site.yml,添加以下內(nèi)容:

---- hosts: localhost  tasks:    - name: install packages      become: true      become_user: root      dnf:        state: present        name:         - tcsh         - htop

你必須調(diào)整使用的模塊名稱以匹配你使用的發(fā)行版。在此示例中,我使用 dnf 是因為我在 Fedora Linux 上編寫劇本。

就像 Linux 終端中的命令一樣,知道 如何 來調(diào)用 Ansible 模塊就已經(jīng)成功了一半。這個示例劇本遵循標準劇本格式:

  • hosts 是一臺或多臺計算機。在本示例中,目標計算機是 localhost,即你當前正在使用的計算機(而不是你希望 Ansible 連接的遠程系統(tǒng))。

  • tasks 是你要在主機上執(zhí)行的任務列表。

    • name 是任務的人性化名稱。在這種情況下,我使用 install packages,因為這就是該任務正在做的事情。

    • become 允許 Ansible 更改運行此任務的用戶。

    • become_user 允許 Ansible 成為 root 用戶來運行此任務。這是必須的,因為只有 root 用戶才能使用 dnf 安裝應用程序。

    • dnf 是模塊名稱,你可以在 Ansible 網(wǎng)站上的模塊索引中找到。

dnf 下的節(jié)點是 dnf 模塊專用的。這是模塊文檔的關(guān)鍵所在。就像 Linux 命令的手冊頁一樣,模塊文檔會告訴你可用的選項和所需的參數(shù)。

怎么使用Ansible安裝軟件

Ansible 文檔

安裝軟件包是一個相對簡單的任務,僅需要兩個元素。state 選項指示 Ansible 檢查系統(tǒng)上是否存在 軟件包,而 name 選項列出要查找的軟件包。Ansible 會針對機器的 狀態(tài) 進行調(diào)整,因此模塊指令始終意味著更改。假如 Ansible 掃描了系統(tǒng)狀態(tài),發(fā)現(xiàn)劇本里描述的系統(tǒng)(在本例中,tcsh 和 htop 存在)與實際狀態(tài)存在沖突,那么 Ansible 的任務是進行必要的更改來使系統(tǒng)與劇本匹配。Ansible 可以通過 dnf(或 apt 或者其它任何包管理器)模塊進行更改。

每個模塊可能都有一組不同的選項,所以在編寫劇本時,要經(jīng)常參考模塊文檔。除非你對模塊非常熟悉,否則這是期望模塊完成工作的唯一合理方法。

驗證 YAML

劇本是用 YAML 編寫的。因為 YAML 遵循嚴格的語法,所以安裝 yamllint 來檢查劇本是很有幫助的。更妙的是,有一個專門針對 Ansible 的檢查工具稱為 ansible-lint,它專門為劇本而生。在繼續(xù)之前,安裝它。

在 Fedora 或 CentOs 上:

$ sudo dnf ins tall yamllint python3-ansible-lint

在 Debian、Elementary 或 Ubuntu 上,同樣的:

$ sudo apt install yamllint ansible-lint

使用 ansible-link 來驗證你的劇本。如果你無法使用 ansible-lint,你可以使用 yamllint。

$ ansible-lint ~/install_packages/site.yml

成功則不返回任何內(nèi)容,但如果文件中有錯誤,則必須先修復它們,然后再繼續(xù)。復制和粘貼過程中的常見錯誤包括在最后一行的末尾省略換行符、使用制表符而不是空格來縮進。在文本編輯器中修復它們,重新運行 ansible-llint,重復這個過程,直到 ansible-lint 或 yamllint 沒有返回為止。

使用 Ansible 安裝一個應用

現(xiàn)在你有了一個可驗證的有效劇本,你終于可以在本地計算機上運行它了,因為你碰巧知道該劇本定義的任務需要 root 權(quán)限,所以在調(diào)用 Ansible 時必須使用 --ask-become-pass 選項,因此系統(tǒng)會提示你輸入管理員密碼。

開始安裝:

$ ansible-playbook --ask-become-pass ~/install_packages/site.ymlBECOME password:PLAY [localhost] ****************************** TASK [Gathering Facts] ******************************ok: [localhost] TASK [install packages] ******************************ok: [localhost] PLAY RECAP ******************************localhost: ok=0 changed=2 unreachable=0 failed=0 [...]

這些命令被執(zhí)行后,目標系統(tǒng)將處于與劇本中描述的相同的狀態(tài)。

在遠程系統(tǒng)上安裝應用程序

通過這么多操作來替換一個簡單的命令可能會適得其反,但是 Ansible 的優(yōu)勢是它可以在你的所有系統(tǒng)中實現(xiàn)自動化。你可以使用條件語句使 Ansible 在不同的系統(tǒng)上使用特定的模塊,但是現(xiàn)在,假定所有計算機都使用相同的包管理器。

要連接到遠程系統(tǒng),你必須在 /etc/ansible/hosts 文件中定義遠程系統(tǒng),該文件與 Ansible 是一起安裝的,所以它已經(jīng)存在了,但它可能是空的,除了一些解釋性注釋之外。使用 sudo 在你喜歡的文本編輯器中打開它。

你可以通過其 IP 地址或主機名(只要主機名可以解析)定義主機。例如,如果你已經(jīng)在 /etc/hosts 中定義了 liavara 并可以成功 ping 通,那么你可以在 /etc/ansible/hosts 中將 liavara 設置為主機?;蛘撸绻阏谶\行一個域名服務器或 Avahi 服務器并且可以 ping 通 liavara,那么你就可以在 /etc/ansible/hosts 中定義它。否則,你必須使用它的 IP 地址。

你還必須成功地建立與目標主機的安全 shell(SSH)連接。最簡單的方法是使用 ssh-copy-id 命令,但是如果你以前從未與主機建立 SSH 連接,閱讀我關(guān)于如何創(chuàng)建自動 SSH 連接的文章。

一旦你在 /etc/ansible/hosts 文件中輸入了主機名或 IP 地址后,你就可以在劇本中更改 hosts 定義:

---- hosts: all  tasks:    - name: install packages      become: true      become_user: root      dnf:        state: present        name:         - tcsh         - htop

再次運行 ansible-playbook

$ ansible-playbook --ask-become-pass ~/install_packages/site.yml

這次,劇本會在你的遠程系統(tǒng)上運行。

如果你添加更多主機,則有許多方法可以過濾哪個主機執(zhí)行哪個任務。例如,你可以創(chuàng)建主機組(服務器的 webserves,臺式機的 workstations等)。

適用于混合環(huán)境的 Ansible

到目前為止,我們一直假定 Ansible 配置的所有主機都運行相同的操作系統(tǒng)(都是是使用 dnf 命令進行程序包管理的操作系統(tǒng))。那么,如果你要管理不同發(fā)行版的主機,例如 Ubuntu(使用 apt)或 Arch(使用 pacman),或者其它的操作系統(tǒng)時,該怎么辦?

只要目標操作系統(tǒng)具有程序包管理器(MacOs 有 Homebrew,Windows 有 Chocolatey),Ansible 就能派上用場。

這就是 Ansible 優(yōu)勢最明顯的地方。在 shell 腳本中,你必須檢查目標主機上有哪些可用的包管理器,即使使用純 Python,也必須檢查操作系統(tǒng)。Ansible 不僅內(nèi)置了這些功能,而且還具有在劇本中使用命令結(jié)果的機制。你可以使用 action 關(guān)鍵字來執(zhí)行由 Ansible 事實收集子系統(tǒng)提供的變量定義的任務,而不是使用 dnf 模塊。

---- hosts: all  tasks:    - name: install packages      become: true      become_user: root      action: >       {{ ansible_pkg_mgr }} name=htop,transmission state=present update_cache=yes

action 關(guān)鍵字會加載目標插件。在本例中,它使用了 ansible_pkg_mgr 變量,該變量由 Ansible 在初始 收集信息 期間填充。你不需要告訴 Ansible 收集有關(guān)其運行操作系統(tǒng)的事實,所以很容易忽略這一點,但是當你運行一個劇本時,你會在默認輸出中看到它:

TASK [Gathering Facts] *****************************************ok: [localhost]

action 插件使用來自這個探針的信息,使用相關(guān)的包管理器命令填充 ansible_pkg_mgr,以安裝在 name 參數(shù)之后列出的程序包。使用 8 行代碼,你可以克服在其它腳本選項中很少允許的復雜跨平臺難題。

感謝你能夠認真閱讀完這篇文章,希望小編分享的“怎么使用Ansible安裝軟件”這篇文章對大家有幫助,同時也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識等著你來學習!


文章題目:怎么使用Ansible安裝軟件
文章路徑:http://weahome.cn/article/pcdshs.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部