# Ansible自動化組態專案實作 ### 主講人:黃夙賢 --- ## Ansible專案實作內容 - 實作一專案"project01",想要在server1機器上,把系統更新至最新狀態(apt update與apt upgrade) - 並且安裝Z shell環境 - 並且把Z shell設定成屬於自己風格(myzsh) - 技術指導:joshhu --- ## 專案規劃 - 需把專案分成三個步驟完成 - apt更新部分 - zsh安裝部分 - omz設定部分 --- ## 下載執行虛擬機器OVA檔 - [Client](https://drive.google.com/file/d/120w2FPrBRmdSuZQwhcuwgAwZJ8bL2tEN/view?usp=sharing) - [Server](https://drive.google.com/file/d/198Br9rzDuWDwKN8ONJljuiXU9YGx8xdg/view?usp=sharing) - 使用Virtualbox建立兩個伺服器 --- ## 設定目錄與環境檔案 ``` cd ~ (回到根目錄) mkdir porject01 (建立專案目錄) cd porject wget https://github.com/shhuangmust/bigdata/raw/main/ansible.cfg (ansible環境設定檔) wget https://github.com/shhuangmust/bigdata/raw/main/inventory (ansible伺服器設定檔) ``` ![](https://i.imgur.com/15lhL4a.png) --- ## 設定專案三個步驟的roles ``` mkdir roles cd roles ansible-galaxy init apt (建立apt role) ansible-galaxy init zsh (建立zsh role) ansible-galaxy init omz (建立omz role) ``` --- ## 設定第一個apt role ``` cd apt cd tasks nano main.yml (編寫apt的動作,包含apt update與apt upgrade) (或者 rm main.yml wget https://github.com/shhuangmust/bigdata/raw/main/project01/roles/apt/tasks/main.yml) ``` ![](https://i.imgur.com/zKaNtYU.png =800x) ![](https://i.imgur.com/fd2ldQW.png =800x) --- ## 設定第二個zsh role - 編寫task目錄下的main.yml ``` cd ~/project01/roles/zsh/tasks/ (前往第二個zsh role的tasks) nano main.yml (編寫zsh的動作,利用參數vars目錄下的檔案,設定好要安裝zsh所需要的所有 套件) (或者rm main.yml wget https://github.com/shhuangmust/bigdata/raw/main/project01/roles/zsh/tasks/main.yml) ``` ![](https://i.imgur.com/lcOrmaW.png =800x) --- - 編寫var目錄下的main.yml ``` nano ../vars/main.yml (設定zsh的相關套件,包含git、zsh、autojump) 或者 ( cd ../vars rm main.yml wget https://github.com/shhuangmust/bigdata/raw/main/project01/roles/zsh/vars/main.yml) ``` ![](https://i.imgur.com/GASjXIv.png =800x) ![](https://i.imgur.com/ZghQt2K.png =800x) --- ## 設定第三個omz role - 第三個omz role這邊不自己寫,嘗試下載網路寫好的role劇本 ``` cd ~ ansible-galaxy install gantsign.oh-my-zsh (安裝網路寫好的oh-my-zsh) cd ~/project01/roles/omz/files (on-my-zsh需要.zshrc設定檔與myclean.zsh-theme主題檔) wget https://github.com/shhuangmust/bigdata/raw/main/.zshrc wget https://github.com/shhuangmust/bigdata/raw/main/myclean.zsh-theme ``` --- ![](https://i.imgur.com/ZOc7BTU.png =700x) ![](https://i.imgur.com/WQKkouo.png =700x) --- ``` cd ../tasks nano main.yml (編寫yaml檔,此為套件作者提供之標準寫法) (或者rm main.yml wget https://github.com/shhuangmust/bigdata/raw/main/project01/roles/omz/tasks/main.yml ) ``` ![](https://i.imgur.com/akfUuMX.png) ![](https://i.imgur.com/DU3v1g5.png) --- ## 最後步驟 ``` cd ~/project01/ nano main.yaml (編輯最後的project01 yaml檔案) (或者 wget https://github.com/shhuangmust/bigdata/raw/main/project01/main.yaml ) ``` ![](https://i.imgur.com/b9Lbim9.png =700x) ![](https://i.imgur.com/3ex107F.png =700x) --- ## 執行ansible playbook ``` ansible-playbook main.yaml (執行專案yaml檔) ``` ![](https://i.imgur.com/dcAFddY.png) ![](https://i.imgur.com/gji78wH.png) --- ## 執行結果 - ssh server - 連線進入server,確認server1已經有zsh的介面,成功! ![](https://i.imgur.com/7CNf0Yr.png) ---
{"metaMigratedAt":"2023-06-17T18:27:47.773Z","metaMigratedFrom":"YAML","title":"Ansible自動化組態專案實作","breaks":true,"contributors":"[{\"id\":\"ef0225b9-6c2a-4012-82c9-fa1031d2c4db\",\"add\":3087,\"del\":0}]"}
    123 views