Conohaへ(ほぼ)CLIだけでCoreOSのインスタンスをセットアップしてみた
今回やること一覧
特に記載のない限り、CLIでやります。
- ツール等の準備
- 環境変数の設定
- vagrant-conohaのインストール
- ConoHa ISOのインストール
- CoreOSのISOイメージをConohaに対してダウンロード
- ConohaにCoreOSをインストール
- Conohaのインスタンスを作成
- CoreOSのISOイメージをConohaにマウント
- CoreOSをインストール1 ※一部GUI
- CoreOSをインストール2
- CoreOSのISOイメージをアンマウントして再起動
- Vagrantfileの書き換え(ssh用のユーザを変更)
- インスタンスのイメージ保存・削除・復元
- インスタンスのイメージ保存 ※GUI
- インスタンスの削除
- インスタンスの復元
前提条件
準備物
- 契約済みのConohaアカウント
操作環境
- Windows10 Pro
- CLIにはGit bashを使用
- Vagrantインストール済み
1. ツール等の準備
1-1. 環境変数の設定
あらかじめ以下の環境変数をセットしておきます
export OS_USERNAME=[APIユーザ名] export OS_PASSWORD=[APIパスワード] export OS_TENANT_NAME=[テナント名] export OS_AUTH_URL=[Identity Endpoint] export OS_REGION=[リージョン] export OS_ADMIN_PASSWORD=[Adminパスワード]
※ここで設定した環境変数は以降の「vagrant-conoha」と「ConoHa ISO」で利用します。
1-2. vagrant-conohaのインストール
ConohaのインスタンスをCLIで生成・停止・破棄などするために、vagrant-conohaを導入します。
$ vagrant plugin install vagrant-conoha
1-3. ConoHa ISOのインストール
ConohaへカスタムISOを登録するために、ConoHa ISO というツールを導入します。
$ curl -L -O https://github.com/hironobu-s/conoha-iso/releases/download/current/conoha-iso.amd64.zip $ unzip conoha-iso.amd64.zip
※MacやLinuxの人はREADMEを参照
1-4. CoreOSのISOイメージをConohaに対してダウンロード
ISOイメージのダウンロード
$ conoha-iso download -i "https://stable.release.core-os.net/amd64-usr/1185.3.0/coreos_production_iso_image.iso"
実行結果に
time="2016-11-23T18:48:15+09:00" level=info msg="Download request was accepted."
などと表示されるので、ダウンロードが完了するまでしばらく待ちます。
ISOイメージの一覧を確認
$ conoha-iso list
2. ConohaにCoreOSをインストール
2-1. Conohaのインスタンスを作成
Vagrantfileの作成
Vagrantfile
VAGRANTFILE_API_VERSION = "2" Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| config.vm.box = 'conoha' config.ssh.username = 'root' config.ssh.pty = true # disable rsync config.vm.synced_folder ".", "/vagrant", disabled: true config.vm.provider :conoha do |conoha| conoha.openstack_auth_url = 'https://identity.tyo1.conoha.io/v2.0' conoha.username = ENV["OS_USERNAME"] conoha.password = ENV["OS_PASSWORD"] conoha.tenant_name = ENV["OS_TENANT_NAME"] conoha.flavor = 'g-1gb' conoha.image = 'vmi-ubuntu-14.04-amd64' conoha.region = ENV["OS_REGION"] conoha.admin_pass = ENV["OS_ADMIN_PASSWORD"] conoha.metadata = { instance_name_tag: "vagrant_conoha" } conoha.security_groups = [ "default", "gncs-ipv4-all" ] end end
※rsyncはローカルにないので無効化しておきます。 ^1
インスタンスを生成
$ vagrant up
authorized_keysの確認
$ echo "cat ~/.ssh/authorized_keys" | vagrant ssh
※あとで使うので控えておく
インスタンスを停止
$ vagrant halt
2-2. CoreOSのISOイメージをConohaにマウント
$ conoha-iso insert
対話形式で進める。こんな感じ。
[1] vagrant_conoha (150-95-143-11) Please select VPS [1]: 1 [1] coreos_production_iso_image.iso Please select ISO [1]: 1 time="2016-11-23T19:16:41+09:00" level=info msg="ISO file was inserted and changed boot device."
2-3. CoreOSをインストール1 ※一部GUI
インスタンスを起動
$ vagrant up
SSHでログインできるようにする
ここだけConohaのWEBコンソールから操作します
$ sudo passwd core
2-4. CoreOSをインストール2
稼働中のConohaのインスタンスにsshでログイン
$ ssh core@インスタンスのIPアドレス
パーティションの削除
$ sudo fdisk /dev/vda p d d d wq
cloud-config.yamlを作成
~/cloud-config.yaml
#cloud-config ssh_authorized_keys: - ssh-rsa ※項番「2-1」で確認したauthorized_keysを記入
※公開鍵はvagrant ssh-configで取得した秘密鍵から生成するのが正しいと思うのですが横着しました
インストール
$ sudo coreos-install -d /dev/vda -C stable -c ~/cloud-config.yaml
2-5. CoreOSのISOイメージをアンマウントして再起動
$ vagrnat halt $ conoha-iso eject $ vagrant up
2-6. Vagrantfileの書き換え(ssh用のユーザを変更)
Vagrantfileの
config.ssh.username = 'root'
を
config.ssh.username = 'core'
に変更。
これで
$ vagrant ssh
できるようになる。
3. インスタンスのイメージ保存・削除・復元
3-1. インスタンスのイメージ保存 ※GUI
ここもConohaのWEBコンソールから操作します
手動でイメージ保存。(https://www.conoha.jp/guide/saveimages.php)
名前は CoreOS
にしました。
3-2. インスタンスの削除
$ vagrant destroy
3-3. インスタンスの復元
インスタンスのイメージから起動できるようにVagrantfileを作成
Vagrantfile
VAGRANTFILE_API_VERSION = "2" Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| config.vm.box = 'conoha' # config.ssh.username = 'root' config.ssh.username = 'core' config.ssh.pty = true # disable rsync config.vm.synced_folder ".", "/vagrant", disabled: true config.vm.provider :conoha do |conoha| conoha.openstack_auth_url = 'https://identity.tyo1.conoha.io/v2.0' conoha.username = ENV["OS_USERNAME"] conoha.password = ENV["OS_PASSWORD"] conoha.tenant_name = ENV["OS_TENANT_NAME"] conoha.flavor = 'g-1gb' # conoha.image = 'vmi-ubuntu-14.04-amd64' conoha.image = 'CoreOS' conoha.region = ENV["OS_REGION"] # conoha.admin_pass = ENV["OS_ADMIN_PASSWORD"] conoha.metadata = { instance_name_tag: "vagrant_conoha" } conoha.security_groups = [ "default", "gncs-ipv4-all" ] end end
※保存したイメージから起動するため、conoha.image = 'CoreOS'
にしています。
起動
$ vagrant up
インスタンスが生成されました。
以上。