以下內容假設你已經會docker了,所以只記錄關鍵的步驟
系統配置
Docker node side
編寫Dockerfile 自動建置一個帳戶root 密碼為root , 且自動啟動ssh 的docker image
FROM amd64/ubuntu:16.04
RUN apt-get update
RUN apt-get install -y openssh-server python-minimal
RUN sed -i 's/PermitRootLogin prohibit-password/PermitRootLogin yes/g' /etc/ssh/sshd_config
RUN echo 'root:root' | chpasswd
ENTRYPOINT /etc/init.d/ssh start && bash
|
Ansible master side
安裝ansible
sudo apt install -y ansible
|
在任意工作目錄放兩個設定檔案,設置ssh 連結localhost:32805 用戶為root 、密碼為root 的組態
[defaults]
inventory = hosts
remote_user = root
host_key_checking = False
|
server1 ansible_ssh_host=127.0.0.1 ansible_ssh_port=32805 ansible_ssh_pass=root
[local]
server1
|
啟動
啟動docker node,–name 名稱server1 對應到hosts 檔案內的server1 只是方便你辨識 ,實際上不影響
$ docker run -it -- rm -p 32805:22 -d --name server1 myimage
|
執行task,成功的話會看到下面註解的文字
若失敗通常是ssh 的問題,確認密碼及sshd 設置
ansible all -m command -a 'echo Hello World on Docker.'
|
未來就可以將測試程式放入container,container 只要有ssh 及python就可作為ansible的控制節點,就可以更容易地變成測試完就拋棄的環境
沒有留言:
張貼留言