天天看點

CoreOS 835.12.0 穩定版安裝

CoreOS是一個基于Docker的輕量級容器化Linux發行版,為Docker而生,CoreOS作為Docker生态圈中的重要一員,日益得到各大雲服務商的重視,發展風頭正勁。

CoreOS宣稱最小化的定制版linux系統:

  1.  Linux核心Linux運作所需存在兩個ROOT分區,一個被用作啟動分區,一個被用作更新分區更新分區在更新完成後,自動重新啟動系統,目前機器不需要從負載叢集中移除,為了保證其它應用程式不被打斷,會通過Linux cgroup限制更新過程中的磁盤、網絡等IO使用。
  2. systemd作為預設系統和服務管理器,其優秀特性:
支援并行化任務;
同時采用 socket 式與 D-Bus 總線式激活服務;
按需啟動守護程序(daemon);
利用 Linux 的 cgroups 監視程序;
支援快照和系統恢複;
維護挂載點和自動挂載點;
各服務間基于依賴關系進行精密控制。      
  1. root分區被設計成隻讀root分區被設計成隻讀,用以保證資料的一緻性和更新可用
  2. CPU、IO等資源隔離自然要祭出容器(Container)來,CoreOS很明智使用Docker作為容器管理器用以建構、釋出應用,從這個層面來看,一個應用其實就是一個容器。
  3. etcd元件負責服務發現和配置共享采用Raft分布式一緻性協定算法,承擔起,元件之間服務通信使用。很自然的,容器(Container)之間應用、服務的伸縮,就顯得很簡單了。其基因層面支援叢集特性,當然,你也可以解讀為雲環境的支援。

一:準備SSH公鑰/私鑰 或 密碼

SSH公鑰/私鑰制作 :在其他linux客戶機機上執行 ssh-keygen :

​​

[root@localhost ~]# ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): Created directory '/root/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /root/.ssh/id_rsa. Your public key has been saved in /root/.ssh/id_rsa.pub. The key fingerprint is: d3:b5:fe:05:81:55:4b:6c:be:08:aa:28:7c:0d:e4:9d [email protected] The key's randomart image is: +--[ RSA 2048]----+ | oo.| | o.o.| | o +. | | . . o . o | | o . S o o o .| | o E o . . o | | . + . . .| | o o o . . | | o . | +-----------------+

​中間需要選擇的步驟,全部預設回車完成。然後在目前使用者的~/.ssh/下面生成了id_rsa id_rsa.pub2個檔案,将id_rsa.pub裡面的加密串貼在下一步的密鑰版 cloud-config.yaml檔案 ssh-authorized-keys 對應的值上。

密碼制作 :在其他linux客戶機機上執行 :

[root@localhost ~]# openssl passwd -1 > 1234.txt Password: [輸入密碼] Verifying - Password: [再次輸入密碼] [root@localhost ~]# [root@localhost ~]# cat 1234.txt $1$ywWEh18N$JPwtTtm54yxmEDNegE5.Z0

​将1234.txt裡面的加密串貼在下一步的 密碼版 cloud-config.yaml檔案 passwd 對應的值上。

二:準備cloud-config.yaml檔案

SSH密匙版本:

#cloud-config

hostname: myhost

coreos:

etcd:

addr: $private_ipv4:4001

peer-addr: $private_ipv4:7001

units:

- name: etcd.service

command: start

- name: fleet.service

command: start

- name: static.network

content: |

[Match]

Name=eno16777736

[Network]

Address=192.168.31.122/24

Gateway=192.168.31.1

DNS=223.5.5.5

DNS=223.6.6.6

users:

- name: core

ssh-authorized-keys:

- ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC8C++zc+hDTWOe5DV+WnEa5/Y+dWN1UDVKX3pBYGHbNCYObpJdYpnaHbe+3NQijt15ZAYqOh6fYJlTx8L08z/bJvmj2n+N0hgO3onB4JsH70bSAL41FPzel7BKFnDlvJ1s3GJahdVzBsrDrCwzM96ofUcImtwji0oWPT3bMApkKa8e2Ty5+WwBuxFKDq/MJVqBK4yJmBnylGzmEyyRnlVpQjsDGdbYjDtHU1ECU+H4oSE7o0cSBQntQeH0ckHMU9cnwnLO8IoHIYad4oY/u+UvLq+58kO85ltioaEmTPkWBIzSB6hP/ghHrQUN/Kf22ECgD5H9CaDDGKHrlwJUZDq1 root@kali

- groups:

- sudo

- docker

密碼版本:

#cloud-config

hostname: myhost

coreos:

etcd:

addr: $private_ipv4:4001

peer-addr: $private_ipv4:7001

units:

- name: etcd.service

command: start

- name: fleet.service

command: start

- name: static.network

content: |

[Match]

Name=eno16777736

[Network]

Address=192.168.31.122/24

Gateway=192.168.31.1

DNS=223.5.5.5

DNS=223.6.6.6

users:

- name: core

passwd:$1$ywWEh18N$JPwtTtm54yxmEDNegE5.Z0

- groups:

- sudo

- docker

三:下載下傳及安裝

現在我們已經編寫好 “cloud-config.yaml”,可以下載下傳并安裝CoreOS了。

ISO下載下傳連結:http://stable.release.core-os.net/amd64-usr/current/coreos_production_iso_image.iso

用ISO盤啟動,會自動進入bash指令行,使用者為core。注意此時系統隻是加載到RAM而已,并未安裝。

如果想轉到root身份對目前配置、網絡等操作,sudo -i 。

下載下傳 制作好的cloud-config.yaml 檔案 :

wget http://192.168.220.137:8080/cloud-config.yaml

此刻準備工作已經完成了,如果想要安裝到sda這塊硬碟上。

[core@server ~]$ sudo coreos-install -d /dev/sda -C stable -c ./cloud-config.yaml

​​其中:

-d 指定目标裝置

-C 指定版本,這裡我用stable

-c 指定配置檔案,cloud-config.yaml

繼續閱讀