Linux

禁用 CoreOS cloudinit

  • February 16, 2019

我想為新的 vServer 嘗試CoreOS。到目前為止,我喜歡它,但犯了一個致命的錯誤:我通過cloudinit文件而不是較新的點火方法創建它,現在每次更新重新啟動時,它都會重置我的密碼和 ssh 設置……

我懶得創建一個“完美”的 cloudinit 文件,所以我假設我可以在之後更改所有設置,就像我之前每次安裝作業系統時一樣……

因此,在每個更新時間視窗之後,我必須再次更改我的密碼,並且我需要重新啟動 sshd 服務,因為埠再次設置為 22,即使配置仍然定義了我更改的埠號。

我找不到任何建議來更改 cloudinit 文件,甚至在重新啟動時禁用重置。我看到了只執行一次的點火文件的優勢,但我想避免重新安裝我的整個 vServer 只是為了通過點火文件重新安裝 CoreOS。

有什麼想法或提示嗎?:)

提前致謝

邁克爾為我指明了正確的方向——謝謝!不知道向系統提供新的雲配置的可能性,並認為我必須在系統中任何位置的不同位置更改一些配置……

另一個問題似乎是 CoreOS 使用 cloud-init 與 cloud-init 文件中顯示的略有不同,因此您可以找到一些不適用於 CoreOS 的不同解決方案。

問題 1:重新啟動將 ssh 埠重置為 22

在文件中找到了這個頁面,我發現我正確編輯了 sshd_config,但是系統在重啟後使用了 sshd.socket,所以我不得不(重新)啟動 sshd…

解決方案:禁用 sshd.socket 啟動

sudo systemctl mask --now sshd.socket
sudo systemctl enable sshd.service      # VERY IMPORTANT!
sudo systemctl restart sshd.service

非常重要:您可以將自己鎖定在系統之外!您可能想檢查您是否可以通過您的提供商控制面板訪問登錄外殼(救了我)。文件說你必須執行上面的命令 1 和 3,但是sshd 服務在重啟後被禁用,所以你必須在重啟之前啟用它!

作為替代方案,您可能希望堅持使用 sshd.socket 並在那裡更改埠。它也記錄在上面的連結中。

問題2:每次重啟後我的密碼重置

解決方案:新建一個cloud-init.yaml

我可以創建一個更好的 cloud-init.yaml 並重新應用它。只需更改密碼並為現有使用者添加我的 ssh-keys 並呼叫

sudo coreos-cloudinit --validate --from-file=/path/to/cloud-init.yaml

檢查文件。刪除--validate標誌將應用 cloud-init.yaml 並更改密碼(很好測試它),但重新啟動仍會重置它!正如我發現的那樣,該coreos-cloudinit命令並不意味著任何使用者手動執行。要在重新啟動時更新重新配置的配置,我們必須覆蓋另一個文件:

sudo cp /path/to/cloud-init.yaml /var/lib/coreos-install/user_data

之後我的密碼在重新啟動後是正確的。

引用自:https://serverfault.com/questions/954290