建立自動登入的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)
';