建立自動登入的CoreOS

最后更新于:2022-04-01 23:04:30

# 建立自動登入的CoreOS 本小節將說明使用SSH的Private key進行登入的CoreOS VM,其中已經安裝好最新版本的Docker了。 ### 啟動CoreOS的VM並獲得IP 1. 前往[http://alpha.release.core-os.net/amd64-usr/current/index.html,](http://alpha.release.core-os.net/amd64-usr/current/index.html,)並且下載[coreos_production_vmware_insecure.zip](http://alpha.release.core-os.net/amd64-usr/current/coreos_production_vmware_insecure.zip)。 1. 下載回來後解壓可以看到標準VMware格式的`vmx`及`vmdk`,及`insecure_ssh_key`,放入一個固定的地方,如`D:\VM\Coreos`中。 ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2015-08-09_55c7597c179c4.png) 1. 直接使用VMware Workstation開啟這個虛擬機,並且將此VM啟動。 1. 進入登入界面時,直接按下enter,就會出現IP位置。 ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2015-08-09_55c7597c215c4.png) ### Windows下使用puttygen轉換insecure_ssh_key Linux/Mac客戶端直接進入終端命令列操作ssh沒問題,這邊特別嘉惠Windows下的使用者,看如何PieTTY套用ssh key。先下載puttygen.exe吧 [先下載Windows專用的puttygen.exe](http://the.earth.li/~sgtatham/putty/latest/x86/puttygen.exe) 1. 進入puttygen的介面,選擇`Load`。 ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2015-08-09_55c7597c30a78.png) 1. 選擇CoreOS資料夾的`insecure_ssh_key`。 ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2015-08-09_55c7597c3cd0b.png) 1. 載入成功後,按下`Save private key`,將這個key輸出到`\CoreOS\`的同目錄下,出現圖中的視窗時直接按Enter,檔名自己取即可。 ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2015-08-09_55c7597c509dd.png) ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2015-08-09_55c7597c6e0c2.png) ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2015-08-09_55c7597c85302.png) 1. 此時可以看到這個CoreOS專用的Private key已經建立了。 ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2015-08-09_55c7597c8deff.png) ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2015-08-09_55c7597c9b113.png) ### 使用Private key無帳號密碼ssh登入CoreOS 1. 首先進入PuTTY或PieTTY的介面,選擇`PuTTY`模式。 ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2015-08-09_55c7597ca985e.png) 1. 輸入剛才開機CoreOS的IP,並且將這個連線存檔為CoreOS,最方便的還是使用標準ssh格式,如`core@192.168.1.108`,將使用者名稱放在前面。 ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2015-08-09_55c7597cc0784.png) 1. 選擇`SSH/Auth`的地方,將剛才產生的key選過來。 ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2015-08-09_55c7597ccf11c.png) ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2015-08-09_55c7597cde079.png) 1. 選擇`Session`,並且別忘了按下`Save`。 ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2015-08-09_55c7597cf410b.png) ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2015-08-09_55c7597d0b401.png) 1. 此時按下`Open`,就可以直接ssh入這個CoreOS而不需要帳號密碼了。第一次連線時會出現圖中的視窗,直接按`Yes`。 ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2015-08-09_55c7597d19f3a.png) 1. `core`這個使用者已經是root權限,因此可以直接使用,不需要`sudo`輸。入`docker version`,可以看到docker的版本,而輸入`docker run -d --name web -p 8080:80 joshhu/webdmo`,可以直接執行。 ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2015-08-09_55c7597d29034.png) 1. 如果看到圖中的網頁畫面,表示這個CoreOS也部署完成了。 ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2015-08-09_55c7597d3598c.png) ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2015-08-09_55c7597d49fcc.png) 1. 如果你也想將這個VM部署到vSphere下,請參考下一小節有關轉換到OVF的步驟。 ### Mac/Linux下直接進入 在Mac/Linux的終端機視窗中,與`insecure_ssh_key`的同目錄下,直接輸入`ssh -i insecure_ssh_key core@` 如`ssh -i insecure_ssh_key core@192.168.1.109` ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2015-08-09_55c7597d5bbd9.png) ### CoreOS的docker scripts加入 CoreOS VM中的Docker,由於所有使用者的設定檔都連結到`/usr/share/skel/.bashrc`,要先將core這個使用者.bashrc的連結移動到獨立自主的.bashrc,再執行上面的指令,先用core這個使用者名稱ssh連入這個VM,再輸入下列指令: ~~~ cp ~/.bashrc ~/.bashrc.my rm ~/.bashrc mv ~/.bashrc.my ~/.bashrc wget -P ~ https://github.com/joshhu/docker/raw/master/docker_scripts/.bashrc_docker; echo "[ -f ~/.bashrc_docker ] && . ~/.bashrc_docker" >> ~/.bashrc; source ~/.bashrc; wget -P ~ https://github.com/joshhu/docker/raw/master/docker_scripts/showmem.coreos; mv ~/showmem.coreos ~/showmem; chmod +x ~/showmem; ~~~ ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2015-08-09_55c7597d667cf.png)
';