安装前准备:
在写这篇笔记的时候CoreOS的稳定版本号为:899.15.0,可能您下载的版本会和我不一样。
下载CoreOS的ISO镜像,推荐稳定版:http://stable.release.core-os.net/amd64-usr/current/coreos_production_iso_image.iso
下载CoreOS的安装文件:http://stable.release.core-os.net/amd64-usr/current/coreos_production_image.bin.bz2
下载CoreOS的签名文件:http://stable.release.core-os.net/amd64-usr/current/coreos_production_image.bin.bz2.sig
安装文件和签名文件都是必须下载的。
PS:建议使用迅雷的离线下载,不然这个网站被墙就惨了。
如果您在看我这篇文章的时候已经过了好久了,如果您不嫌弃的话,我这次的版本还有配置文件上传到了360的云盘中供下载:
https://yunpan.cn/cqx66N743UkbH 访问密码 8918
(请将下载的配置文件中的XXX改为自己的地址)
打开VirtualBox新建虚拟机,配置如下:
名称随意了,
内存官网上推荐1G(PS:不能太小了,如果太小ISO镜像加载不成功,出现的症状就是无限次的重启),硬盘官网没有推荐但是在制作CoreOS的VDI硬盘镜像时候有个注释:# Resize virtual disk to 10 GB,所以建议10G大小吧,太小了安装不上。处理器个数看个人电脑情况吧,EFI启动不能使用。
网络配置建议桥接网卡:
在存储中添加刚才下载的ISO镜像。
之后启动CoreOS
进入系统之后首先切换到root用户:
sudo -i
查看网络接口名称:
ip link
一般为enp0s3,各位查看一下,记下名称,建立static.network文件
vi /etc/systemd/network/static.network #添加以下内容 [Match] Name=enp0s3 [Network] Address=XXX.XXX.XXX.XXX/XX Gateway=XXX.XXX.XXX.XXX DNS=XXX.XXX.XXX.XXX
保存,退出。
启用该网络连接:
systemctl start systemd-networkd ip link set enp0s3 up
ping一下VirtualBox所在机器的ip地址:
ping XXX.XXX.XXX.XXX
如果成功则继续,如果失败,重新将端口关闭,再打开,之后重启systemd-networkd服务
ip link set enp0s3 down ip link set enp0s3 up systemctl restart systemd-networkd
再次ping测试,如果还是不行,看是不是VirtualBox里面的网络设置是不是桥接模式。
另外,个人经历的,我的测试环境是笔记本电脑,系统win10的,有无线路由器360的,但是很不幸,首先是win10防火墙把ping命令禁了,出现的症状就是ping不通我这台笔记本,但是笔记本能ping通别的机器,需要在防火墙中开启回显请求(不会的搜一下有解决办法)。其次,我把360路由器ip/mac地址绑定启用了(不一定是360路由器,其他品牌路由器都有这个功能),所以虚拟机再向外网ping的时候ping不通,这两个问题整了好长时间才解决。另外,再补充下,如果你用的不是win10,也安装了360安全卫士,一定把局域网防护中的局域网隐身功能关闭,不然还是ping不通。事物总是有两面性的,安全了就比较麻烦,方便了又不安全了,我们总是在这两者之间寻找平衡点,这些经验教训拿出来共勉吧!
好的,继续。
下面的步骤需要自建web服务器,原因core-os.net这个网站被墙了,导致了cloud-install安装文件执行失败。
不过我在2016年4月4日登陆的时候这个地址能打开了,很开心,不过我不确定它以后能不能访问,还是用我的办法吧。因为我运行VirtualBox的系统是windows的,所以建立web服务器太简单了(linux和Mac用户可以开启apache或者nginx),下载babyweb软件类似于AWS.exe,这两个哪个都可以,不过本机的IIS不要启动,不然端口冲突了。
按照下面的配置:
可以用浏览器访问试试:http://127.0.0.1,成功的话应该显示那几个文件。
好的,继续。
建立系统配置文件:
vi cloud-config.yaml #添加以下内容,注意将XXX替换为自己的,另外ssh-rsa需要自己登陆coreos的机器生成,windows系统用putty或者xshell都可以,Linux和Mac直接在终端中生成,用#ssh-keygen命令会生成在用户目录下的.ssh目录中。将后缀.pub文件中的内容复制到下面ssh-rsa后面就行了。 #cloud-config hostname: "coreos1" ssh-authorized-keys: - "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA9TJ5ADc8qlOS0HN8alm/Q9Zv5GuO6iQAmdL9a/Zmt16nWJ8wLAZ/glBn5/olSgdHyPRVl4iSYEL3gshCq3YhsOrFpe0w78FXavUfIW0xtNl6CO6UTS+eRJMCqtSqjPzSCPmEJscmUxEnSGCjV+B1wbyPoEIAkNDKhcAqPo9ELEnQerJDNg+GnwZ6r7wipGE1m9ZG6X1pI6QJcuPvbef9MqZu6CG8aCX2z14zxNVPOmook/dk1HWUyB8ZOoZqHGcrRQHl9+vIDSVs2qxlCVLCSdhtCYfGDQs5ycOnD0pQ2BoSznRgoVgLaiJVks+3jxK9qCKpxDW/9jhUJIFXyp/rxQ==" write_files: - path: "/etc/systemd/network/static.network" permissions: "0644" owner: "root" content: | [Match] Name=XXXXXX [Network] DHCP=no Address=XXX.XXX.XXX.XXX/XX Gateway=XXX.XXX.XXX.XXX DNS=XXX.XXX.XXX.XXX coreos: etcd: addr: "$private_ipv4:4001" peer-addr: "$private_ipv4:7001" units: - name: "etcd.service" command: "start" - name: "fleet.service" command: "start" - name: "XXXXXX" command: "start" users: - groups: - "sudo" - "docker"
注意:所有的cloud-config配置文件里面的TAB键是不能被识别的,所以,切记缩进的时候一定使用空格键。
这个网站可以验证cloud-config.yaml配置的正确性:https://coreos.com/validate/
保存,退出。
添加hosts文件,并写入以下内容:
vi /etc/hosts #将XXX替换为运行VirtualBox的机器的IP地址, XXX.XXX.XXX.XXX release.core-os.net
保存,退出。
下载安装脚本:https://raw.github.com/coreos/init/master/bin/coreos-install
将其拷贝到刚才那几个安装文件所在的目录。
注意:如果是windows用户,新建的文本文档粘贴进去的安装脚本,我不保证能使用,没有试过。建议用editplus、notepad++等,新建之后一定要修改换行符(windows中与linux、Mac中不一样)。
然后在虚拟机中下载并且修改。
wget http://XXX.XXX.XXX.XXX/coreos-install vi coreos-install #寻找BASE_URL字段,将引号里面的值修改为http://release.core-os.net/amd64-usr/899.15.0,因为我这几个安装文件都是899.15.0所以后面都写成这个值,如果您下载的和我的版本不一样请将您的版本号替换我的版本号。
如果地址打不开,在虚拟机中也有安装的脚本,位置在:/usr/bin/coreos-install,可以拷贝到当前目录使用:
cp /usr/bin/coreos-install coreos-install
同样执行替换BASE_URL的操作。
保存,退出。
赋予coreos-install文件以执行权限:
chmod +x coreos-install
最后执行安装命令:
./coreos-install -d /dev/sda -C stable -c cloud-config.yaml
成功之后显示Success!
....~~~~...~~>>>~>~.~>~>~>~.哎呀,露馅啦,这个贴图是我用13版本时候的~~~~!!![email protected]!@!
看一下CoreOS究竟用了多大的空间,将近5G的空间。
重启,去掉光盘,从硬盘启动。
用xshell登陆吧骚年们~!