📘
現代 IT 人一定要知道的 Ansible 自動化組態技巧
  • README
  • 前言
  • Ansible 是什麼?
  • 怎麼部署 Ansible 環境?
  • 怎麼用 Vagrant 練習 Ansible?
  • 怎麼用 Docker 練習 Ansible?
  • 怎麼操作 Ansible?
  • 怎麼用 Jupyter 操控 Ansible?(localhost)
  • 怎麼用 Jupyter 操控 Ansible?(Managed node)
  • 怎麼用 Docker Compose 練習 Ansible?
  • Ansible 的開發工具有哪些?
  • 怎麼看 Ansible Modules 文件?
  • 常用的 Ansible Module 有哪些?
  • 怎麼使用 setup 取得 Managed node 的 facts?
  • 怎麼使用 Ansible 的 Template 系統?
  • 怎麼在 Playbooks 裡使用 Handlers?
  • Ansible 如何發送 notification 到 Slack?
  • Ansible 如何發送 notification 到 HipChat?
  • 如何在 Playbooks 使用 loops?
  • 如何維護大型的 Playbooks?
  • Roles 是什麼?
  • 怎麼使用 Roles?
  • 怎麼用 Roles 部署 LNMP 網頁應用程式?(上)
  • 怎麼用 Roles 部署 LNMP 網頁應用程式?(下)
  • 怎麼用 Roles 部署 TestLink?
  • 怎麼在 Ansible Galaxy 分享 Roles?(上)
  • 怎麼在 Ansible Galaxy 分享 Roles?(下)
  • 怎麼用 Travis CI 測試 Roles?
  • 怎麼混用 Ansible 建置 Docker image?
  • 怎麼在 Docker Hub 混用 Ansible 自動建置 Docker image?
  • 怎麼用 Vault 管理敏感資料?
  • 總結
Powered by GitBook
On this page
  • 10. Ansible 的開發工具有哪些?
  • 純文字編輯器 (Text Editor)
  • Terminal (終端機)
  • 虛擬環境 (Virtual Environment)
  • API 文件覽瀏器 (API Documentation Browser)
  • 其它
  • 相關連結

Was this helpful?

Edit on GitHub

Ansible 的開發工具有哪些?

Previous怎麼用 Docker Compose 練習 Ansible?Next怎麼看 Ansible Modules 文件?

Last updated 4 years ago

Was this helpful?

10. Ansible 的開發工具有哪些?

在開始撰寫 Ansible Playbooks 前,讓凍仁先來介紹平日會用到的開發工具和相關技巧。

純文字編輯器 (Text Editor)

Vim

Syntastic

要讓 Syntastic 可以完整支援 Ansible,我們還需安裝 ansible-vim 和 ansible-lint 才行。

  1. 使用 pip 安裝 ansible-lint。

$ sudo pip install ansible-lint
  1. 使用 NeoBundle 安裝 Syntastic 和 ansible-vim,並調整設定。

$ vi ~/.vimrc
...
" ansible-vim
NeoBundle 'pearofducks/ansible-vim'

" Syntastic
NeoBundle 'scrooloose/syntastic'
let g:syntastic_enable_highlighting = 1
let g:syntastic_always_populate_loc_list = 1
let g:syntastic_auto_loc_list = 1
let g:syntastic_check_on_open = 1
let g:syntastic_check_on_wq = 0

set statusline+=%#warningmsg#
set statusline+=%{SyntasticStatuslineFlag()}
set statusline+=%*

" ignore files of Ansible Roles.
let g:syntastic_ignore_files = ['\m^roles/']
  1. 如只想用 Syntastic 來檢查語法錯誤 (syntax error) 而不想檢查 style 的話,可把 style 的部份關掉。

let g:syntastic_quiet_messages = { "type": "style" }

MacDown

題外話,凍仁連現在這篇文章都是用 Vim + Livedown 在寫的呢!

Atom

Terminal (終端機)

在 GNU/Linux 和 macOS 上都已內建 terminal,但凍仁較慣用以下三個 terminal emulator。

虛擬環境 (Virtual Environment)

API 文件覽瀏器 (API Documentation Browser)

其它

相關連結

凍仁在「」一文時早有提到 Playbooks 其實是使用 的語法在撰寫,雖說我們只要有純文字編輯器就可以進行開發,但凍仁還是會藉由些自動補齊 (Auto-complete)、縮排提示、語法 (Syntax) 高亮 (Highlighting) 和檢查 (Check) 等擴充套件工具來補助。

是凍仁多年來主要使用的文字編輯器,不管是編寫程式、文件還是設定檔都是一套打天下,而現在也用它來開發 Playbooks。凍仁自己除了會在 Terminal 使用 Vim 之外,還會額外安裝 GVim (GNU/Linux, Windows) 和 (macOS) 來使用 Vim。

▲ 以上為使用 MacVim 撰寫 Playbooks 的 demo,其 colorscheme 為 。

:在 Vim 裡跑 ag 的套件。

:支援 Ansible 檔案 syntax highlighting 的套件。

:模糊搜尋檔案的套件。

:讓 Vim 整合使用 Dash.app 的套件,但只支援 macOS。

:可快速對多行註解和反註解的套件。

:使用垂直線顯示縮排提示的套件。

:Vim 的套件管理員,可參考凍仁 3 年前寫過的「」一文。

:在 Vim 裡使用分割視窗開啟檔案管理員的套件。

:支援多種語言的程式碼檢查套件,可另外用 pip 安裝 來檢查 syntax 和 style。

:在 Vim 裡觀看 git diff 還有新增修改等狀態的套件。

:支援 Jinja2 檔案語法高亮的套件。

:自動補齊文字的套件。

:讓 Vim 整合使用 Zeal 的套件。

Syntastic 的細部設定可從 上找到,特別要提一下的是上面多了停止檢查 roles/ 目錄的設定,在凍仁的習慣裡 Roles 大多會另外維護,這部份在再往後的章節才會多加說明。

是 macOS 上 open source 的 Markdown 文字編輯器,凍仁會在撰寫 README.md 時會用到,但近來發現 這個工具後,就比較常用 Vim 在寫 Markdown 文件了。

是 GitHub 釋出的 open source 文字編輯器,業界也有不少使用者,凍仁雖不常使用,但它的自動補齊功能非常之強大,若本身沒有在使用 Vim,不妨可以用它來開發 Playbooks。

▲ 以上為使用 Atom 撰寫 Playbooks 的 demo,其 UI Theme 為 One Dark,而 Syntax Theme 為 。

:Snippets for Ansible.

:Ansible 自動補齊的套件。

:檢查 Ansible 語法的套件,需手動使用 pip 安裝 。

:讓 Atom 整合使用 Dash.app 的套件,但只支援 macOS。

:macOS 上的 Terminal 不二選擇,為了要相容 Terminator 的習慣,凍仁還下了不少功夫調整。

:GNU/Linux 上支援畫面分割的 Terminator,是個比 Gnome Terminal 順手的工具。

:GNU/Linux 上極輕量的 Terminal。

:凍仁曾在「」一章題過,在此就不多加說明了。

:凍仁主要開發 Playbook 的環境,曾在「」一章題起過。

Ansible 是 2012 才開始的專案,可 Module 的總數已經高達 836 之多,雖說各個 Module 的使用文件在上都查的到,但凍仁還是習慣在本機存一份離線版以備不時之需。

:macOS 上查詢、自動更新 API 文件的工具,其 license 為 US$ 24.99。

:open source 版的 Dash,支援 GNU/Linux 和 Windows。

:網頁版的 Zeal。

:Android 上類似 Dash 的離線 API 文件瀏覽器。

:macOS 上的快捷搜神兵,在此凍仁拿它整合 Dash 以快速搜尋 Ansible 文件。

:版本控制系統 (Version Control System),用來紀錄、追蹤 playbooks 版本的工具,這對 Infrastructure as Code 而言是必不可缺的。

06. 怎麼操作 Ansible?
YAML
Vim
MacVim
ag.vim
ansible-vim
ctrlp.vim
dash.vim
EnhCommentify.vim
indentLine
neobundle.vim
12. Vim 套件管理 - NeoBundle | 完全用 GNU/Linux 工作
nerdtree
syntastic
ansible-lint
vim-gitgutter
Vim-Jinja2-Syntax
YouCompleteMe
zeavim.vim
GitHub
MacDown
Livedown
Atom
ansible-snippets
autocomplete-ansible
Linter-Ansible-Linting
ansible-lint
dash
iTerm2
Terminator
rxvt-unicode
Docker
05. 怎麼用 Docker 練習 Ansible?
Vagrant
04. 怎麼用 Vagrant 練習 Ansible?
官網
Dash
Zeal
DevDocs
LovelyDocs
Alfred 3
Git
YAML Syntax | Ansible Documentation
How to use Syntastic plugin for Vim | Code Yarns
VIM + Syntastic: how to disable the checker? | Stack Overflow
chusiang/vimrc | GitHub
推薦兩款很安逸的離線 API 文檔查詢工具 Dash 和 Zeal | 每日頭條
Tomorrow Night Eighties
Tomorrow Night Eighties
automate_with_ansible_practice-14.jpg
2016-12-10-macdown.png
2016-12-11-dash-ansible.gif
2016-12-11-alfred-ansible.gif
2016-12-10-vim-ansible-autocomplete.gif
2016-12-10-atom.gif