在「Ansible 用 Docker 練習(xí) Ansible」一章時,凍仁用了 Docker 來練習(xí) Ansible,而這次凍仁將再次結(jié)合 Jupyter 這套系統(tǒng)來使用 Ansible。
Jupyter 的全名為 Jupyter Notebook,是從 2014 年的 iPython 專案演變而來的。它是個可以透過網(wǎng)頁來撰寫可互動式的文件系統(tǒng),除了支援 Markdown, Python 和 (幾乎) 所有的程式語言外,還可以在上面執(zhí)行 Shell 指令!
官網(wǎng)簡介如下:
The Jupyter Notebook is a web application that allows you to create and share documents that contain live code, equations, visualizations and explanatory text.
若想深入了解 Jupyter,可參考以下文章:
現(xiàn)在連 Microsoft Azure 都推出了 Notebooks 的 SaaS 服務(wù)在搶攻 Jupyter 的市場,得以證實它受歡迎程度非常之高。
凍仁已建好了作為 Control Machine 的 Jupyter Docker image - chusiang/ansible-jupyter
,大家可從 Docker Hub 上取得。目前支持的 Linux 發(fā)行版本有:
在終端機 (Terminal) 里啟動 Jupyter 的容器,請依個人喜好選擇 image,其 latest
標(biāo)簽 (tag) 是對應(yīng)到 alpine-3.4
。
# alpine-3.4
$ docker run -p 8888:8888 -d chusiang/ansible-jupyter:alpine-3.4
# ubuntu-14.04
$ docker run -p 8888:8888 -d chusiang/ansible-jupyter:ubuntu-14.04
查看容器狀態(tài),并確認剛剛啟動的 Jupyter 容器是有否綁定 Port 到 8888 上。
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4c5e92f73db8 chusiang/ansible-jupyter:ubuntu-14.04 "docker-entrypoint.sh" 44 hours ago Up 3 seconds 0.0.0.0:8888->8888/tcp naughty_elion
于瀏覽器輸入 http://localhost:8888/ 進入 Jupyter 網(wǎng)站。
ansible_on_jupyter.ipynb
檔案。試著在 Jupyter 上操控 Ansible 吧!
在 Jupyter 上要執(zhí)行 Shell 指令時,記得要在開頭加上 !
的前綴字元。
<Ctrl>
+ <Enter>
的快捷鍵即可執(zhí)行。File
選單里有 Download as
的項目進行下載),不然一旦等容器被移除該筆記就沒了!現(xiàn)在的環(huán)境其實只有 Control Machine 一臺,所以 inventory 的設(shè)定只有 localhost
有作用!
最早凍仁是從 @sakanamax 前輩身上得知 Ansible + Jupyter 這個超棒的組合,并透過它們?nèi)腴T Ansible 這項技藝!
在 2016 年第 8 屆鐵人賽開賽前夕,凍仁便嘗試把這個組合移植到更多的 GNU/Linux 發(fā)行版本上,前后約花了 2 周才完成呢。
最后希望 chusiang/ansible-jupyter
這個 Docker image 可以幫到大家。:D
更多建議: