Ansible Synchronize Why Permission Denied
關於 ansible 的 Synchronize 模組問題 關於 ansible 的使用上,synchroize 是一個很棒的模組, 如果大量的檔案想要複製到目標機器上的話,也許有其他模組可以達到類似的需求, 但以效能來說,synchroize 這個模組大概會是首選,因為其底層是透過 rsync 的指令傳輸資料。 不過 synchroize 這個模組卻是時靈時不靈。 筆者有一陣子很困擾的問題是,為什麼整份 ansible script 已經測試那麼多次了。 執行到有 synchroize 這個模組有時還是會報出 permission deied。 become_user: root, become_method: sudo, 跟模組參數試了又試。 還是很難理解到底那個環節出了問題。 發現問題 一般來說 ansible 使用上都是透過 ssh 控制遠程的目標伺服器。 筆者的 asnible script 寫了很多安裝佈署的步驟,其中當然也包含了 synchroize 模組。 為了符合單機離線安裝的情境,做這類佈署時我會直接將 inventory 的主機直接指定本地端的 IP, 直接在本地執行安裝腳本。 一台 Server 可能會有多個網卡跟IP(127.0.0.1 or 192.168.x.x) 就在某次我將 inventory 目標主機指定成 127.0.0.1 果然發生一樣的問題。 當我發現目標機器是 127.0.0.1 時就會出問題, 目標機器 是 192.168.1.10 (一樣是本地端IP) 卻是正常的。 我大概可以猜測 synchroize 模組針對 localhsot or 127....