99re热这里只有精品视频,7777色鬼xxxx欧美色妇,国产成人精品一区二三区在线观看,内射爽无广熟女亚洲,精品人妻av一区二区三区

Ansible 用 Jupyter 操控 Ansible (Managed node)

2018-07-25 10:35 更新

在前一章「Ansible 用 Jupyter 操控 Ansible (localhost)」凍仁用了 Jupyter 來(lái)練習(xí) Ansible,那時(shí)凍仁只介紹 Ansible 對(duì) Control Machine 對(duì)本機(jī)進(jìn)行操控的部份,這次凍仁將透過(guò) Jupyter 和 Ansible 來(lái)操控 2 個(gè) Managed node。

automate_with_ansible_practice-05.jpg

怎么用 Jupyter 上的 Ansible 操控 Managed node?

建立 Managed node

使用 chusiang/ansible-managed-node 的 Docker image 來(lái)建立 2 個(gè) Managed node,我們?cè)凇?a href="http://www.15014759268.cn/automate_with_ansible/automate_with_ansible-xu3227p3.html">怎么用 Docker 練習(xí) Ansible?」的章節(jié)有說(shuō)明過(guò),在此就不多加敘述。

automate_with_ansible_practice-08.jpg

  1. 啟動(dòng) server1 的 Managed node,其 OS 版本為 Ubuntu 14.04。

    $ docker run --name server1 -d -P chusiang/ansible-managed-node:ubuntu-14.04
    
  2. 啟動(dòng) server2 的 Managed node,其 OS 版本為 CentOS 7。

    $ docker run --name server2 -d -P chusiang/ansible-managed-node:centos-7
    

建立 Control Machine

請(qǐng)參考前一章「怎么用 Jupyter 操控 Ansible?(localhost)」,使用 chusiang/ansible-jupyter 的 Docker image 建立 Control Machine 容器,已建立該容器者請(qǐng)略過(guò)此步驟。

automate_with_ansible_practice-09.jpg

  • 啟動(dòng) Control Machine,其 OS 版本為 Ubuntu 14.04。

    $ docker run -p 8888:8888 -d chusiang/ansible-jupyter:ubuntu-14.04
    

設(shè)定 Ansible 環(huán)境

建好 Control Machine 和 Managed node 的環(huán)境后,我們還需通過(guò) ansible.cfg 和 inventory 檔案將兩者串接起來(lái) (可參考「怎么部署 Ansible 環(huán)境? 」一章)。

automate_with_ansible_practice-10.jpg

  1. 取得本機(jī)的 IP:凍仁取得的 IP 為 192.168.1.104,請(qǐng)自行修改。

    # GNU/Linux
    $ ifconfig eth0
    
    # macOS
    $ ifconfig en7
    
  2. 取得 Managed node 容器所綁定的 OpenSSH port,請(qǐng)?zhí)貏e留意 0.0.0.0:*->22/tcp 的部份。

    $ docker ps
    CONTAINER ID        IMAGE                                        COMMAND                  CREATED             STATUS              PORTS                    NAMES
    309616808a9e        chusiang/ansible-jupyter:ubuntu-14.04        "docker-entrypoint.sh"   2 days ago          Up 1 seconds        0.0.0.0:8888->8888/tcp   admiring_mccarthy
    89fc4e7cca15        chusiang/ansible-managed-node:centos-7       "/usr/sbin/sshd -D"      2 days ago          Up 51 minutes       0.0.0.0:32806->22/tcp    server2
    ecdf39055ba2        chusiang/ansible-managed-node:ubuntu-14.04   "/usr/sbin/sshd -D"      3 days ago          Up 39 hours         0.0.0.0:32805->22/tcp    server1
    
  3. 進(jìn)入 Jupyter notebook 網(wǎng)站 (http://localhost:8888/)。

  1. 修改 ansible.cfg 檔案。

    [defaults]
    
    hostfile = inventory
    remote_user = docker
    private_key_file = ~/.ssh/id_rsa
    host_key_checking = False
    retry_files_save_path = ./ansible-retry
    
  2. 修改 inventory 檔案,并填入步驟 1 取得的 IP 和步驟 2 取得的 OpenSSH port。

    server1  ansible_ssh_host=192.168.1.104  ansible_ssh_port=32805
    server2  ansible_ssh_host=192.168.1.104  ansible_ssh_port=32806
    

    請(qǐng)勿在這個(gè) Lab 使用 localhost 和 127.0.0.1 的位址,這會(huì)讓 Control Machine 一直對(duì)自己找 Managed node。在這里我們是把 Managed node 的 OpenSSH port 綁在 Host OS 1 上,而不是 Control Machine 的容器里。

  3. 這時(shí) Jupyter 網(wǎng)站底下會(huì)有 ansible_on_jupyter.ipynbansible.cfghostssetup_jupyter.yml四個(gè)檔案。

    2016-12-08-ansible-jupyter-file-list.png

Play Ansible

現(xiàn)在我們可以在 Jupyter 上透過(guò) Ansible 操控 2 個(gè) Managed node 了,記得把 inventory 的部份從 localhost 改成 all 喔!

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

  • 由于 Control Machine 是借由 docker 這個(gè) sudo user 來(lái)管理 Managed node,故我們需借由 --become 參數(shù)來(lái)取得 Managed node 上的 sudo 權(quán)限。

    !ansible all -m command -a 'sudo cat /etc/sudoers' --become
    

后話

終于幫先前辛辛苦苦建置的 chusiang/ansible-jupyter 和 chusiang/ansible-managed-node 兩個(gè) Docker image 寫(xiě)了一篇完整的介紹文了!一開(kāi)始建置時(shí)沒(méi)想那么多,沒(méi)想到這樣的組合會(huì)這么有威力!現(xiàn)在凍仁不管是要 debug 還是測(cè)試不同的 GNU/Linux 都會(huì)先拿這兩個(gè) image 來(lái)用呢。:P

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

1. 在區(qū)分實(shí)體機(jī)器和虛擬機(jī)器時(shí),我們常用 Host OS 來(lái)稱呼前者,而后者則會(huì)用 Guest OS 或 VM 來(lái)形容之。 ?


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

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)