Translate

2015年3月26日木曜日

CoreOSをVirtualBox上の仮想マシンへVagrantなしでインストールする

Docker ホストを構築する場合は
ホスト自体は最も軽い状態にしておきたい..

結局本格的に使用する場合は
現時点では CoreOS をつかうしかないのかな..?

そうなるといろいろ変なことして他の人に迷惑をかけない
VirtualBox上の仮想マシンでたてられるようにしておきたい。

ということでイチからやってみることにした。

将来的に物理マシンへインストールする練習にするためにVagrantを使わない方法でやってみました。

なお、以下の手順で作成したDockerホストはあくまで試行や学習用なのでローカルPC外部にサービス提供できません。

--------

前提


  • ターミナル接続ソフト(Poderosa, Tera Termなど)が導入済み
  • VirtualBoxが導入済み
  • 1GBメモリの仮想マシンが作成可能であること


CoreOSのダウンロード


  • ブラウザでhttps://coreos.com/を開く
  • Download CoreOS>ISO Image
  • Stable Channel>Download Stable ISO (Beta,Alphaの選択は後で変えられる)
  • ファイルを保存する
  • OKボタン
  • ※参考:私が試した際には約144MB


VirtualBox 上に仮想マシンを作成


  • VirtualBoxを起動
  • 新規(N)アイコン
  • 名前(N):適当な名前をつける
  • タイプ(T):「Linux
  • バージョン(V):「Other Linux (64-bit)
  • 次へ(N)ボタン
  • 必要なメモリサイズ:1GB

※注意:256MB512MBだと動作しません

  • 次へ(N)ボタン
  • 仮想ハードドライブを作成する(C)
  • 作成ボタン
  • VDI(VirtualBox Disk Image)
  • 次へ(N)ボタン
  • 可変サイズ(D)
  • 次へ(N)ボタン
  • 作成ボタン
  • 作成した仮想マシンを選択した状態で設定(S)アイコンを選択
  • ストレージ
  • コントローラ:IDE>空(DVDアイコン)を選択
  • 属性のCD/DVDドライブ(D)欄の右端のDVDアイコンを押す
  • 仮想DVD/CDディスクのファイルの選択...
  • ダウンロードしたCoreOS ISOイメージを選択
  • 開く(O)ボタン
  • ネットワーク
  • アダプター2タブ
  • ネットワークアダプタを有効化
  • ホストオンリーアダプター
※NIC1枚目がサービスLAN(ゲストコンテナを使う人用)、
 NIC2枚目が運用LAN(システムを管理する裏方用)想定です。
※キーバインドがUSになっていて使いづらいので
 SSHでターミナル接続して作業するため後で固定IPを割り付けています。

  • OKボタン
  • 作成した仮想マシンを選択した状態で起動(T)アイコンを選択
  • コンソールがあがるまで待機


CoreOS Live実行

  • core@localhost ~ $」が出るまで待機

注意: LiveCD/DVDを動かした状態であり、
この段階ではまだ仮想HDDへインストールされていません。
キーボードレイアウトがUSで固定され変えられません。
→このため手順ではターミナル接続ソフト上でなるべく編集作業しています。

  • ifconfig -a
  • ホストオンリー側のNIC(enp0s8)のIPアドレスとネットマスクをメモ
  • sudo passwd core
  • hogehoge coreのパスワード
  • hogehogecoreのパスワード(再度)

※注意:上記のような緩いパスワードだともう一度聞いてきます

  • sudo systemctl start sshd

※この段階でターミナル接続ソフトからログインできるようになります


CoreOSインストール


  • ターミナル接続ソフトウェアを起動
  • メモしたIPアドレス、ユーザを「core」、パスワードを「core」にしてSSH接続
  • sudo -s

※プロクシ環境下の場合以下の環境変数をセットします
 export http_proxy=http://<プロクシサーバFQDN>:<プロクシサーバポート>/
 export https_proxy=http://<プロクシサーバFQDN>:<プロクシサーバポート>/

※インストール後ログインするユーザを「core1」、
 パスワードを「fugafuga」、パスフレーズを「hogehoge」として手順を記述します。

  • openssl passwd -1 ("エル"ではなく"いち")
  • fugafuga ←corecoreのパスワード
  • fugafuga ←corecoreのパスワード
  • 出力した文字列をコピーしておく(passwdに使用)
  • ssh-keygen -t rsa
  • (Enter)
  • hogehoge ←パスフレーズ
  • hogehoge ←パスフレーズ
  • cat /root/.ssh/id_rsa.pub
  • 出力した文字列をコピーしておく(ssh-authorized-keysに使用)

 ※/root/.ssh/id_rsa.pubは再起動すると消えます

  • vi config.yml
  • 以下のリストを入力し保存する

#cloud-config

hostname: coreos1
coreos:
 units:
  - name: 10-static.network
    runtime: no
    content: |
      [Match]
      Name=enp0s8

      [Network]
      Address=192.168.XX.XXX/XX ←ホストオンリー側のIP
users:
 - name: core1
   passwd: $1$s... ..x1 ←opensslコマンドの文字列
   groups:
    - sudo
    - docker
   ssh-authorized-keys:
    - ssh-rsa AAA... ..71 root@localhost ←ssh-keygenコマンドの文字列

 ※注意:このファイル内でtabは使用できません
 ※注意:先頭の空白有無でもエラーになることがあります

  • coreos-install -d /dev/sda -C stable -c stable -c config.yml

 stablebetaもしくはalphaに変更可能
  実行するとたとえ自分自身がstableであっても再度ダウンロードするので
  時間がかかります。

  • Success! CoreOS stable XXX.X.X is installed on /dev/sda」と表示されるまで待機
  • shutdown -h now
  • Oracle VM VirtualBoxマネージャー画面の該当仮想マシンを選択した状態で設定(S)アイコンを選択
  • ストレージ
  • コントローラー:IDE>coreos_production_iso_image.isoを選択
  • 属性のCD/DVDドライブ(D):の右端のDVD/CDアイコンを選択
  • 仮想ドライブからディスクを除去
  • OKボタン

 ※注意:刺したままだと再度Live環境があがります


CoreOS起動


  • Oracle VM VirtualBoxマネージャー画面の該当仮想マシンを選択した状態で起動(T)アイコンを選択
  • ログインプロンプトが出るまで待機
  • core1
  • fugafuga core1のパスワード
  • sudo systemctl start sshd
  • vi /usr/share/oem/run
  • 以下の3行を記述し保存する

 #!/bin/bash
 systemctl set-environment HTTP_PROXY=http://<プロクシサーバFQDN>:<プロクシサーバポート>/
 systemctl set-environment HTTPS_PROXY=http://<プロクシサーバFQDN>:<プロクシサーバポート>/
 systemctl start sshd

※systemctl enable sshdが効かないためここに記述しています。
 プロクシ不要の環境は中2行削除してください。
  • sudo chmod a+x /usr/share/oem/run
  • reboot
  • ログインプロンプトが出るまで待機
  • ターミナル接続ソフトウェアを起動し、IPアドレス、ユーザ「core1」、パスワード「fugafuga」を指定してログイン
  • docker search centos
  • 以下の様にDocker Hub上の公式イメージなどが参照できていればOK


core1@coreos1 ~ $ docker search centos
NAME                                 DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
centos                               The official build of CentOS.                   890       [OK]
...

akroh/centos                         Centos 6 container that has been updated w...   0                    [OK]

------

インストールして気づいたが..
クラスタ型のDockerベアメタル環境を選択する場合、CoreOSは選択肢にならない。

CoreOSDockerは決別したらしいが、どうもその原因が投資で得たたくさんの資金で組み込んだ機能、クラスタリングやらDocker Machineやらが気に入らなかったらしい。

CoreOS公式サイトのインストール手順でも「Docker will not work out of the box(Dockerはボックス(仮想マシンor物理マシン)の外では動作しない)」という制限を最初に説明している。

このため、クラスタを将来的にやろうという人はCoreOSを選ばなくなるんじゃ..

でもDocker Machineもユーザガイド該当章先頭に「Note: Machine is currently in beta, so things are likely to change. We don't recommend you use it in production yet.(注意:Docker Machineは現在ベータ公開です、このため変更されることがあります。本番環境で使用しないことをおすすめします。)」ってかいてあるし..

通常のCentOS、Ubuntuや、Server版、LTS版でも、最小構成であったとしてもインストレーション時にそれなりのサイズのISOイメージを落とさにゃならんし..

RedHat のProject AtomicでだしてるCentOS AtomicHost版か、Sunappy Ubuntu Coreか、はたまたMesos?!

Docker Machineがさっさと使える状態になればこのへんも淘汰されるのか?!

..みんな、どれ使おうとしてるんだろ..

0 件のコメント:

ClaudeをOpenAI O1のように思考させるDifyサンプルを試す

 Difyの「探索」タブにはさまざまなサンプルが載っており、その1つに「Thinking Claude (OpenAI O1 Alternative)」というものがある。   このサンプルがどういうものか、未だに自分でも解けない以下の問題をためしに聞いてみることにした。 『人類の...