Skip to content

Instantly share code, notes, and snippets.

@chusiang
Last active May 28, 2016 22:06
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save chusiang/60918f8f400c3f82944c86b924553b27 to your computer and use it in GitHub Desktop.
Save chusiang/60918f8f400c3f82944c86b924553b27 to your computer and use it in GitHub Desktop.
現代 IT 人一定要知道的 Ansible 自動化組態技巧 (簡報大綱)

現代 IT 人一定要知道的 Ansible 自動化組態技巧 (簡報大綱)

  1. 現代 IT 人一定要知道的 Ansible 自動化組態技巧

  2. 關於凍仁翔

  • 4 年以上 IT 經驗。
  • 現職 DrSays IT 工程師。
  • Ansible 實戰講堂 4e. 學員。
  • 於 Ansible Galaxy 分享 Roles:
    • php7 (php-fpm)
    • switch-apt-mirror
    • vim-and-vi-mode
    • zabbix-agent
    • CVE-2016-3714
  1. 坐穩囉
  • 要開始了!
  1. Outline
  • 現代 IT 人是什麼?
  • 導入自動化組態的好處是什麼?
  • Ansible 是什麼?
  • 怎麼部署 Ansible 環境?
  • 怎麼操作 Ansible?
  • Q & A
  1. Ⅰ. 現代 IT 人是什麼?

  2. Ⅱ. 導入自動化組態的好處是什麼?

  • 導入 Ansible 自動化組態,我們除了可以減少服務中斷時間、測試基礎建設、降低意外風險,更可以讓開發、測試和正式環境無縫接軌。
  • 導入自動化組態的好處是什麼?
  1. Ⅲ. Ansible 是什麼?
  • Ansible 取名自知名小說《戰爭遊戲》,是一款能跨越時空的即時通訊工具。
  • Ansible 是近年來知名度不斷上升的 DevOps 自動化軟體,雖然自 2013 年創立至今不到 3 年,但由於其採用
無代理程式的架構,部署靈活,程式碼易讀,因而迅速成為受矚目的 DevOps 工具。
  • 與 Puppet, Salt, Chef 並列其四的自動化組態設定工具 (Infrastructure as Code),其簡單易用的特性讓人一用就愛上,在 DevOps 界也佔有一席之地。
  • 使用 Push 架構,只需 Python 和 SSH 即可操作,不用額外裝 Angent。

  1. Ⅳ. 怎麼部署 Ansible 環境?
  • Ansible 是怎麼運作的?
    • 透過 inventory 定義 Managed node,並藉由 SSH 與 Python 進行溝通。
  • 怎麼安裝 Ansible?
    • 只需在 Control Machine 安裝 Ansible;Managed node 則要有 Python 2.5+ 和 SSH。
  • 怎麼設定 Ansible?
    • 藉由 ansible.cfg 來設定 inventory (host file) 檔案路徑、Managed node (被控端) 使用者名稱、SSH 金鑰 … 等。
  • inventory 是什麼?
    • 主要用來定義 Managed node (被控端) 主機位址與群組,也可用來設定 ssh 連線資訊。
  1. Ⅴ. 怎麼操作 Ansible?
  • Ad-Hoc command, Playbook* (Module, Galaxy), Ansible Tower
  • Ad-Hoc command 是什麼?
    • 簡短 (臨時性) 的指令,與一般的 command line 操作模式雷同,一次只透過一行指令進行操作。
    • Ansible -m 後的各項參數請參考官方文件 - Module Index。
  • Playbooks 是什麼?
    • 一鍵部署的強大武器,比 Shell Script 更具結構化的腳本語言。
    • 使用 YAML 格式,寫 code 就如同寫文件,簡單易讀。
    • 可使用 Jinja2 (template 系統) 表達式,並支援變數、判斷式、迴圈 ... 等語法。
    • 一份 Playbook 可以有多個 Play 和 多個 Tasks。此例用到了 Play1, Task3 和 Module*3 (command, apt, lineinfile)。
 - 執行 example.yml playbook。
  1. 火 力 展 示
  • Not Live Demo
  1. 如果還有時間 | 如果沒有時間

  2. Module

  • 您選擇了 "時間 OK" …
  1. Galaxy

  2. 參考文獻

  1. 圖片來源
  1. 工商服務
  1. Q & A

  2. The END

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment