VMESXi安装CoreOS

一、CoreOS官网下载镜像

(轻量镜像cd,直接可以用cd运行系统)

补充:后面终于深刻理解了这只是作为引导用的介质,而不是CoreOS真正安装的光盘介质!坑阿!

链接如下:
https://coreos.com/os/docs/latest/booting-with-iso.html

下载回来后使用VMware新建虚拟机,选择CoreOS系统再装载上ISO启动就不再累述了。
我这边使用的是VMESXi6,选择的是VMware11版本,直接就能在linux系统中选择CoreOS版本。

配置静态IP地址方便我们下面cloud-config.yaml的配置。

补充:这里后面感觉到只是设置引导liveCD的网络设置,其实dhcp有获取到就不用再做配置也可以,并不是配置你安装后的网络。

$ cd /etc/systemd/network/
$ sudo vim static.network

[Match]
Name=ens192

[Network]
Address=172.16.0.44/22
Gateway=172.16.1.1
DNS=172.16.0.53
DNS=119.29.29.29

$ sudo systemctl restart systemd-networkd  

可以在ip addr后看到,重启网络服务后,静态配置的IP有,之前Dhcp获取的IP仍然还保留。
另外,你还可以绑定多个静态IP在同一张网卡上。
我这边VMESXi上的虚拟网卡之前通过ip addr可以看到命名是ens192,所以配置static.network的时候Name才要=ens192,不然不会生效。

$ sudo passwd root # 配置root登录密码

我这里配置成ABCabc123,因为只是虚拟机测试用,就不弄那么复杂了。
补充:其实这个也只是设置LiveCD的root密码……基本上不用做这一步,用core用户sudo就行了……

二、配置Cloud-config

补充:sudo su后passwd core用户的密码,然后再ssh用core用户登录上去,再sudo操作,便于注入密钥。

原本是想参照网上的文档:wget http://mirrors.tomatoengine.com/coreos/cloud-config.yaml来直接获取模板的,但发现被墙了或者怎么了反正不成功。

下载模板不成功,有可能是被墙了,或有什么权限不允许。172.104.78.80是美国那边的服务器。这样看来,也许就得手动敲了?或者找国内的模板?当然也可以先用自己的电脑翻墙下载好模板后再上传到服务器。

这一个模板配置其实有点费解,和普通的linux不同,普通的linux直接安装就是有光盘就可以了,但CoreOS还要考虑到集群,要先配置好集群。

$ vim cloud-config.yaml

# cloud-config

hostname: CoreOS01     # 根据实际情况修改

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=ens192

        [Network]
        Address=172.16.0.44/22     # 根据实际情况修改
        Gateway=172.16.1.1         # 同上
        DNS=223.5.5.5
        DNS=8.8.8.8


users:

- name: core                     # 这里的用户名要记住,登录的时候要用到
  ssh-authorized-keys:
  - ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEA1qukWFczkpaI6UPnrG+/uiNYv3KalJtrHeScazrOFJDZxQRsNckPetPtz71ZErGFCo+dJ0lPi4jmyOdkxCfy8+TZbrPm9oX+RUp3Q9oFFdxPdtCGcDX0V+Rh4hq7mnY5eP3TdTUxjMfk5ziZSJSsYFCSJki4ueIUsg5MHP75VGU=      
  # 这里修改为你自己的公钥(用比如xshell创建好一大串公钥后复制粘贴上去,所以之前要远程也是如此方便复制粘贴,注意密钥类型
- groups:
    - sudo
    - docker

由于CoreOS默认使用密钥登陆,所以我们必须想办法注入一个公钥到虚拟机中,这样制作出来的镜像我们才可以使用密钥访问。
最简单的cloud-config.yaml可以只包括一个ssh_authorized_keys字段,用于密钥注入。

注:使用xshell生成公钥后注意要及时在用户管理密钥那里将私钥也导出成文件,用于ssh登录。

如果忘了这一步,比如忘了私钥,那可以(设置VMESXi-选项-引导选项-引导至bios-光盘启动为第一项)用liveCD进系统后将公钥文件替换。

补充:替换后仍发生重启会恢复成旧有cloud-config中的公钥,所以后来我是选择挂载系统后替换liveCD中已设置好密码的shadow文件去取代旧有的禁止登录的shadow文件……这样就可以密码登录了。

coreos-install -d /dev/sda -C stable -c cloud-config.yaml

执行安装命令进行安装

下载速度堪忧,所以还是强制中断了。

三、下载实际安装介质和签名文件

(先进行第四步,能正常安装就不用下载也行)
http://stable.release.core-os.net/amd64-usr/1409.5.0/
PS:选择下载文件名为coreos_production_image.bin.bz2(安装介质)和coreos_production_image.bin.bz2.sig(签名文件)的文件

我这边正研究将这两个文件下载回来后以后离线可以安装,就是搭建一个内部web服务器提供类似的下载去安装的时候发现我重新尝试执行的安装命令已经顺利完成了。
毕竟我浏览器能正常打开官网提供的下载服务器阿。

四、执行安装

coreos-install -d /dev/sda -C stable -c cloud-config.yaml
能正常安装,就不去使用搭建web服务器的方式了。花的时间其实也不算久,能等得起。

想想也是,这以后CoreOS的系统也是要自动更新的,如果老被墙多没有意思。
重启就会发现CoreOS系统已正常安装。

五、ssh密钥登录

比如使用xshell来登录,用户选择core,密钥文件选择之前生成好的对应私钥id_rsa,就可以登录进去了。

文:铁乐与猫

end

发表评论

电子邮件地址不会被公开。 必填项已用*标注