前一天提到Ansible可以透過執行Playbooks中的play來對Host(s)進行「工作任務列表」(Tasks) >> 讓你的Host(s)完成一個演出(play)。而Ansible預設會用本地OpenSSH來跟遠端機器溝通,第一時間沒有Remote Host那就開始來跟localhost溝通吧,順便看看過程需要什麼~~
ansible <host-pattern> [options]
ansible localhost -m shell -a "/bin/echo hello"
ansible localhost -m shell -a "/bin/echo hello"
,會出現錯誤,因為這時候,ansible會嘗試用ssh去連線,這時候就會失敗。因為本機ssh Server 預設是「未啟動的」。其實用google搜尋有一堆關於ssh文章,因為這算是很基本的。這邊就當作是自己的筆記,並配合ansible的了解,另外,當你搞定localhost時,那Remote hsots你就知道該怎麼「溝通」了
產生Server端金鑰:sudo ssh-keygen -A
啟動Server:sudo service ssh start
產生Client端金鑰:ssh-keygen -b 4096
(key type > rsa)
上傳Client端金鑰(公鑰)到Server端:因為是本機,所以將id_rsa.pub
放入 ~/.ssh/authorized_keys
指令:cat id_rsa.pub >> authorized_keys
修改authorized_keys:chmod 600 authorized_keys
(不然連線時會出現Permission denied (publickey))
ssh Client to ssh Server
再次執行ansible指令:ansible localhost -m shell -a "/bin/echo hello"
待續…