Ansible 用 Jupyter 操控 Ansible (localhost)

2018-07-25 10:33 更新

在「Ansible 用 Docker 练习 Ansible」一章时,冻仁用了 Docker 来练习 Ansible,而这次冻仁将再次结合 Jupyter 这套系统来使用 Ansible。

automate_with_ansible_practice-05.jpg

Jupyter 是什么?

Jupyter 的全名为 Jupyter Notebook,是从 2014 年的 iPython 专案演变而来的。它是个可以透过网页来撰写可互动式的文件系统,除了支援 Markdown, Python 和 (几乎) 所有的程式语言外,还可以在上面执行 Shell 指令!

官网简介如下:

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,可参考以下文章:

现在连 Microsoft Azure 都推出了 Notebooks 的 SaaS 服务在抢攻 Jupyter 的市场,得以证实它受欢迎程度非常之高。

怎么用 Jupyter 操控 Ansible?

冻仁已建好了作为 Control Machine 的 Jupyter Docker image - chusiang/ansible-jupyter,大家可从 Docker Hub 上取得。目前支持的 Linux 发行版本有:

  • alpine-3.4, latest
  • archlinux
  • centos-7
  • debian-7
  • debian-8
  • gentoo
  • opensuse-42.1
  • ubuntu-14.04
  • ubuntu-16.04

automate_with_ansible_practice-06.jpg

  1. 在终端机 (Terminal) 里启动 Jupyter 的容器,请依个人喜好选择 image,其 latest 标签 (tag) 是对应到 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
    
  2. 查看容器状态,并确认刚刚启动的 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
    
  3. 于浏览器输入 http://localhost:8888/ 进入 Jupyter 网站。

  4. 开启 ansible_on_jupyter.ipynb 档案。
  5. 试著在 Jupyter 上操控 Ansible 吧!

    2016-12-07-ansible-jupyter-ping.gif

  6. 在 Jupyter 上要执行 Shell 指令时,记得要在开头加上 ! 的前缀字元。

  7. 在 Code Block 输入完指令后,点击选单列的 ▶▏或使用 <Ctrl> + <Enter> 的快捷键即可执行。
  8. 练习完,记得下载这本 notebook (透过左上角的 File 选单里有 Download as 的项目进行下载),不然一旦等容器被移除该笔记就没了!
  9. 現在的環境其實只有 Control Machine 一台,所以 inventory 的設定只有 localhost 有作用!

    automate_with_ansible_practice-07.jpg

后话

最早冻仁是从 @sakanamax 前辈身上得知 Ansible + Jupyter 这个超棒的组合,并透过它们入门 Ansible 这项技艺!

在 2016 年第 8 届铁人赛开赛前夕,冻仁便尝试把这个组合移植到更多的 GNU/Linux 发行版本上,前后约花了 2 周才完成呢。

最后希望 chusiang/ansible-jupyter 这个 Docker image 可以帮到大家。:D

相关连结


以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号