Ansible 的開發(fā)工具

2018-07-25 10:42 更新

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

automate_with_ansible_practice-14.jpg

凍仁在「Ansible 如何操作」一文時(shí)早有提到 Playbooks 其實(shí)是使用 YAML 的語法在撰寫,雖說我們只要有純文字編輯器就可以進(jìn)行開發(fā),但凍仁還是會借由些自動(dòng)補(bǔ)齊 (Auto-complete)、縮排提示、語法 (Syntax) 高亮 (Highlighting) 和檢查 (Check) 等擴(kuò)充套件工具來補(bǔ)助。

純文字編輯器 (Text Editor)

Vim

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

2016-12-10-vim-ansible-autocomplete.gif▲ 以上為使用 MacVim 撰寫 Playbooks 的 demo,其 colorscheme 為 Tomorrow Night Eighties

Syntastic

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

  1. 使用 pip 安裝 ansible-lint。

    $ sudo pip install ansible-lint
    
  2. 使用 NeoBundle 安裝 Syntastic 和 ansible-vim,并調(diào)整設(shè)定。

    $ 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/']
    
  3. Syntastic 的細(xì)部設(shè)定可從 GitHub 上找到,特別要提一下的是上面多了停止檢查 roles/ 目錄的設(shè)定,在凍仁的習(xí)慣里 Roles 大多會另外維護(hù),這部份在再往后的章節(jié)才會多加說明。

  4. 如只想用 Syntastic 來檢查語法錯(cuò)誤 (syntax error) 而不想檢查 style 的話,可把 style 的部份關(guān)掉。

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

MacDown

MacDown 是 macOS 上 open source 的 Markdown 文字編輯器,凍仁會在撰寫 README.md 時(shí)會用到,但近來發(fā)現(xiàn) Livedown 這個(gè)工具后,就比較常用 Vim 在寫 Markdown 文件了。

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

2016-12-10-macdown.png

Atom

Atom 是 GitHub 釋出的 open source 文字編輯器,業(yè)界也有不少使用者,凍仁雖不常使用,但它的自動(dòng)補(bǔ)齊功能非常之強(qiáng)大,若本身沒有在使用 Vim,不妨可以用它來開發(fā) Playbooks。

2016-12-10-atom.gif

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

Terminal (終端機(jī))

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

  • iTerm2:macOS 上的 Terminal 不二選擇,為了要相容 Terminator 的習(xí)慣,凍仁還下了不少功夫調(diào)整。
  • Terminator:GNU/Linux 上支持畫面分割的 Terminator,是個(gè)比 Gnome Terminal 順手的工具。
  • rxvt-unicode:GNU/Linux 上極輕量的 Terminal。

虛擬環(huán)境 (Virtual Environment)

API 文件瀏覽器 (API Documentation Browser)

Ansible 是 2012 才開始的專案,可 Module 的總數(shù)已經(jīng)高達(dá) 836 之多,雖說各個(gè) Module 的使用文件在官網(wǎng)上都查的到,但凍仁還是習(xí)慣在本機(jī)存一份離線版以備不時(shí)之需。

  • Dash:macOS 上查詢、自動(dòng)更新 API 文件的工具,其 license 為 US$ 24.99。

    2016-12-11-dash-ansible.gif

  • Zeal:open source 版的 Dash,支持 GNU/Linux 和 Windows。

  • DevDocs:網(wǎng)頁版的 Zeal。
  • LovelyDocs:Android 上類似 Dash 的離線 API 文件瀏覽器。 1

其它

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

    2016-12-11-alfred-ansible.gif

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

相關(guān)連結(jié)

1LovelyDocs 是凍仁 2016/12/24 在 Galaxy Note 3 上逛 Google Play 時(shí)找到的 Dash like Apps,其 release 日期為 2016/11/23。 ?


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號