Ansible 簡單範例

Loading

下面來看一下如何透過 Ansible 來做自動化部署

測試環境 CentOS 9 Stream (虛擬機)

Ansible 架構分為 Control node ( Ansible 控制端 ) 與 Managed nodes ( 被 Ansible 控制端 ) , 下面的範例使用 locatehost 本機當作 Managed node (與 Control node 同一台來做).

locatehost Control node ( Ansible 控制端 ) -> locatehost Managed nodes ( 被 Ansible 控制端 )

安裝 Ansible
官網是用 pip 來安裝 Ansible.

[root@localhost ~]# yum install pip
[root@localhost ~]# pip install ansible
[root@localhost ~]# pip install ansible-lint

建立一個測試用的資料夾

[root@localhost ~]# mkdir ansible_quickstart && cd ansible_quickstart
[root@localhost ansible_quickstart]#

使用 Ad-Hoc command 的指令操作模式

  • 使用內建 command 模組
    後面接著想執行的指令即可.

    [root@localhost ansible_quickstart]# ansible localhost -m command -a "echo Hello World"
    [WARNING]: No inventory was parsed, only implicit localhost is available
    localhost | CHANGED | rc=0 >>
    Hello World
    

    這個範例就是透過 Ansible 在 localhost 執行了 echo Hello World

  • 使用內建 Ping 模組
    簡單測試一下,並使用系統提供的 ping 模組.

    [root@localhost ansible_quickstart]# ansible localhost -m ping
    [WARNING]: No inventory was parsed, only implicit localhost is available
    localhost | SUCCESS => {
        "changed": false,
        "ping": "pong"
    }
    

    這個範例就是透過 Ansible ping 模組檢查 localhost 是否存在.

實用上 Ansible 主要是可以透過定義 PlayBook 與 Inventery 來做大量部屬的,接著我們來看如何搭配這兩項來做

  • Connection methods – https://benjr.tw/106439
    基本上 Ansible 是透過 SSH 去遠端執行指令,但 SSH 需輸入帳號密碼,這邊可以先了解一下幾種連線設定的方式.
  • 操作模式 Ad-Hoc 與 Playbook – https://benjr.tw/106364
    簡單看一下這兩種模式的使用方式.
  • PlayBook – https://benjr.tw/106386
    來看一下 Playbook 的用法.
  • Ansible 範例 – Chrony daemon – https://benjr.tw/106474
    來看一下如何自動化部署 Chrony (NTP 網路時間通訊協定服務).
  • host_vars 定義特定的變量 – https://benjr.tw/106481
    來看一下如何使用 host_vars 目錄來為每個節點定義特定的變量,並在 Playbook 中使用這些變量.
  • gather facts – https://benjr.tw/106493
    在執行 Ansible 時 會有一段是 Gathering Facts ,我們來看一下要如何應用這一塊.
沒有解決問題,試試搜尋本站其他內容

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料