まとめ
Part3のやり直しです。CoreOSは絶賛開発中なのでキャッチアップしていかないとすぐに使えなくなります。
はやくDeisとKubernetesをインストールする環境を用意したいです。
テンプレートの作成
ディスクへインストールの手順でテンプレートを作成しておきます。今回は復習です。
最初に~/bin/waitjob
を用意します。
~/bin/waitjob#!/usr/bin/env bash set -eo pipefail
while : do json=$(idcf-compute-api queryAsyncJobResult --jobid=$1) status=$(echo ${json} | jq '.queryasyncjobresultresponse.jobstatus') if [ ${status} -eq 0 ]; then echo -ne "." sleep 10s else echo -e "\n" echo ${json} | jq ".queryasyncjobresultresponse | {jobid: $1,jobresult}" break fi done
|
ボリュームの作成とボリュームのアタッチをします。
$ waitjob $(idcf-compute-api createVolume \ --name=coreos_disk \ --diskofferingid=10 \ --size=80 \ --zoneid=1 | jq '.createvolumeresponse.jobid' ) $ waitjob $(idcf-compute-api attachVolume \ --id=83223 \ --virtualmachineid=53553 | jq '.attachvolumeresponse.jobid')
|
cloud-config.ymlを作成します。
~/coreos_apps/cloud-config.yml
ssh_authorized_keys: - ssh-rsa AAAAB3NzaC1yc2E....
write_files: - path: /etc/environment permissions: 0644 content: | COREOS_PUBLIC_IPV4=$public_ipv4 COREOS_PRIVATE_IPV4=$private_ipv4
coreos: etcd: discovery: https://discovery.etcd.io/ed724cf0abd2d02abf985f57b53d6cf4 addr: $private_ipv4:4001 peer-addr: $private_ipv4:7001 units: - name: etcd.service command: start - name: fleet.service command: start
|
cloud-config.ymlを使いCoreOSをディスクにインストールします。
$ sudo ./coreos-install -d /dev/sdc -c ./cloud-config.yml
|
ボリュームをデタッチ、スナップショットを作成してからテンプレートを作成します。
$ waitjob $(idcf-compute-api detachVolume \ --id=83223 | jq '.detachvolumeresponse.jobid')
$ waitjob $(idcf-compute-api createSnapshot \ --volumeid=83223 \ | jq '.createsnapshotresponse.jobid')
$ waitjob $(idcf-compute-api createTemplate \ --snapshotid=166218\ --displaytext=coreos-beta-tpl-v4 \ --name=coreos-beta-tpl-v4 \ --ostypeid=99 | jq '.createtemplateresponse.jobid')
|
インスタンスを作成します。
$ waitjob $(idcf-compute-api deployVirtualMachine \ --serviceofferingid=21 \ --templateid=9030\ --zoneid=1 \ --name=coreos-beta-v3-3 \ --displayname=coreos-beta-v3-3 \ --group=mshimizu | jq '.deployvirtualmachineresponse.jobid')
|
CoreOSインスタンスにログイン
公開鍵認証でSSHログインします。
$ eval `ssh-agent` $ ssh-add ~/.ssh/my_private_key $ ssh -A core@coreos-beta-v3-3 CoreOS (beta)
|
ifconfigでIPアドレスを確認します。
$ ifconfig ens32 | awk '/inet /{print $2}' 10.1.0.117
|
確認したIPアドレスを/etc/environment
のCOREOS_PRIVATE_IPV4
に記述します。
$ sudo vi /etc/environment COREOS_PUBLIC_IPV4= COREOS_PRIVATE_IPV4=10.1.0.117
|
rebootします。
reboot後、fleetctl list-machines
でCoreOSクラスタのジョインしているインスタンスを確認します。
$ fleetctl list-machines MACHINE IP METADATA 0ba88b13... 10.1.0.174 - 3b9bf346... 10.1.1.90 - 5d2a8312... 10.1.0.117 -
|
まとめ
CoreOSをディスクへのインストールは面倒です。公式のISOが提供されているので今度はISOを使ってみようと思います。
discoveryのTOKENのリセットもできるようになったので、CoreOSクラスタのインストールは終了できそうです。
今度こそDeisのインストールができます。