LinodeでCoreOSをインストールしてみる

カテゴリ:Web制作タグ:,

数ヶ月前に記事にもしましたが、Linodeに登録していたのですが、サービスの開発等で使う機会を失っていました。
今回Core OSとやらに興味を持ちましたので、今回はサーバーの追加からCore OSのインストールまでを解説していけたらなと思います。

このページの内容

  1. はじめに
  2. サーバーの追加
  3. CoreOSのインストール
  4. 終わりに

はじめに

CoreOSはCentOS等と違い(名前は似てますが)、元々アプリケーション(nginx,php,mysql等)をコンテナ上でのみで動作させるよう設計されているらしく、インストールが終わったらCentOSみたくyumでPHPをインストールだー!というふうにはいきませんのでご注意を。

コンテナを起動するのに使う「Dockerの使い方なんて分からないよ」、「Dockerは使わないよ」という方は、今回記事で紹介しているCoreOSを使用するのはやめたほうが良いでしょう。

私はDockerについて全然詳しくない(というかこれから勉強します)ですが、今回基盤として軽量でもありよさ気なCoreOSを使ってみることにしました。
※実際のアプリケーションを動かすコンテナ内のOSはCentOSにしようかなと思っています。

また、Linodeのアカウントの作成が終わっていない方は別途Linodeのアカウント開設の解説記事を参考に作成してください。

サーバーの追加

まずはCoreOSをインストールするためのサーバーを追加していきましょう。
linode-install-coreos_01
Linodeにログインしたら、「Linodes」から「Add Linodes」と進みます。
※まだ何もサーバーを追加してない場合ログイン後上記の画面がすぐ表示されているかと思います。

追加したいプランを選択後、ロケーション(実サーバーの設置場所)を選んで「Add this Linode!」をクリックします。
※ロケーションは特別な事情がない限り「Tokyo, JP」を選べばOKです。
他のロケーションも選択出来ますが、海外にあるため日本からアクセスした場合通信速度や反応が低下する場合があります。

今回私はLinode4096プランを選択しました。

linode-install-coreos_02
サーバーの追加が終わるとこのような画面が表示されるかと思います。
「linodexxxxxx」もしくは右側にある「Dashboard」をクリックして詳細ページへ移動します。

linode-install-coreos_03
上部メニューの「Rebuild」もしくは詳細のところにある「Rebuild」どちらかをクリックします。
※どちらも同じページに移動します。

linode-install-coreos_04
画像を参考に項目を埋めていきます。
Distribution:「Debian 7.6」を選択
Deployment Disk Size:「1024」と入力
Swap Disk:「256 MB」を選択
Root Password:ルートユーザーのパスワードを入力

項目を埋めたら「Rebuild」ボタンをクリックします。

linode-install-coreos_05
しばらく待つと画面が切り替わると思うので、今度はDisk Imagesのところにある「Create a new Disk Image」というリンクをクリックします。

linode-install-coreos_06
新しくディスクイメージを作る画面に切り替わるので画像を参考に項目を埋めていきます。
Label:このディスクイメージの名前です。自分で分かりやすいようにつけてOKです。
Type:「unformatted / raw」を選択します。
Size:右側に表示されている最大サイズの方を入力
※プランによって数値は異なるので画像と違っても問題ありません。

項目を埋めたら「Save Changes」ボタンをクリックします。

linode-install-coreos_07
しばらく待つと元の画面(ダッシュボード)に戻ってくると思います。
今作成したディスクイメージがちゃんと表示されているか、ジョブがSuccessに変わったかを念のため確認しましょう。
確認が終わったら、Profileのところにある「Edit」リンクをクリックします。

linode-install-coreos_08
プロファイルの編集画面に移動するので画像を参考に「Block Device Assignment」の箇所を変更します。
「/dev/xvdb」に先ほど作成が終わったディスクイメージを選択します。
「/dev/xvdc」に「256MB Swap Image」を選択します。

設定を変更したら一番下の「Save Changes」ボタンをクリックします。

linode-install-coreos_09
再度ダッシュボードに戻ってくるので、「Boot」ボタンを押してサーバーを起動します。

linode-install-coreos_10
起動してもいいかポップアップが出るので「OK」ボタンをクリックします。

linode-install-coreos_11
サーバーの起動完了までは少し時間がかかると思います。
上記画像のようにサーバーステータスが「Running」になっていれば起動完了です。

次にSSHクライアント等でサーバーに接続します。
linode-install-coreos_12
接続に必要なIPや後に設定ファイルに書くホスト名は、ダッシュボードの右にある「Remote Access」リンクをクリックすると移動するページで確認することが出来るようになっています。
IPだけならLinodesの一覧からも確認出来ます。
今回はPoderosaを使って作業していきます。
ログインするユーザーは「root」、パスワードは「リビルドを行った際に設定したパスワード」です。

まずは、下記コマンドを実行してパッケージリストを更新します。

次に下記コマンドを実行して「grub-legacy」をインストールします。

ここまで完了したら一旦コマンド画面から離れて再度Linodeの管理画面で作業します。
先ほどのままページを開いていればダッシュボードが表示されている状態かと思います。
閉じてしまった方はダッシュボードを開いてください。

linode-install-coreos_13
プロファイルの「Edit」リンクをクリックします。

linode-install-coreos_14
プロファイルの編集画面が表示されるので、画像を参考に項目を変更します。
Kernel:「pv-grub-x86_64」を選択
Xenify Distro:「No」を選択

設定を変更したら一番下の「Save Changes」ボタンをクリックします。
保存が完了したら、再度コマンドの画面に戻りましょう。

CoreOSのインストール

さて、ここでようやくCoreOSのインストールに入ります。

まずは、下記コマンドを実行してCoreOSのインストーラをダウンロードします。

次に設定ファイル用にパスワードを生成するため下記のコマンドを実行します。

表示されたものをコピーしておきます。

次に下記のコマンドを実行してセットアップ用の設定ファイルを作ります。

ファイルの内容は下記をコピペして各箇所を編集してください。

下記は全てLinode Managerの「Remote Access」から確認出来ます。
YYYYには、https://discovery.etcd.io/newへアクセスして表示されるものを入力
XXXXには、サーバーのIPアドレスを入力します。

Cloud-Config Validatorでテストしたところ、「 – reboot-strategy: best-effort」という設定のところが、
「Line 27:incorrect type for “update” (want struct).」と怒られたので、「-を削りました」

また、Networkの設定は特に手動で固定などしてあげる必要もないので今回は削りました。
以下取り消し線が引かれている箇所は作業中にいろいろ試した時のアレです。

利用させてもらったyamlにあった下記の部分に関しては、複数サーバーなどを利用していて、外部に公開しないサーバー(ローカルIP固定)の場合に使うと良いでしょう。
LinodeはグローバルIPは設定を書かなくてもDHCPでちゃんと割り当てられるので今回は削りました。
設定する場合は下記の説明を読んでください。


AAAAにはローカルIPアドレスを入力します。(/17も含む)初期状態では割り当てられていないので、ローカルIPを固定にしたい場合は、Private IPsにあるリンクをクリックして割り当ててください。
BBBBにはDefault Gatewaysのアドレスを入力します。
CCCCにはDNS Resolversのアドレスを入力します。
<以下、作業中の出来事>
私がちゃんと理解出来ていないのか、上記設定を書くと外部と通信が出来なくなるので今回は省きました。とか書いてた。
↓そしていろいろ作業していて気づく↓
利用させてもらったyaml内の記述がプライベートIPだったので、そうかプライベートIPの設定を書くのか!と勘違いして設定したわけです。
そりゃプライベートIPで設定したら外部からサーバー見えないんだもん通信出来るわけないよね(´・ω・`)?どうして気付かなかった?と自分に突っ込みたい。
Linodeにインストールするに当たって参考にさせてもらったブログには書いてないのにね。おバカちゃん
<以上、作業中の出来事>

編集が終わったら

で保存します。

次に下記コマンドを実行してSSHのキーペアを作成します。

※秘密鍵は別途自分のPC等に保存してください。

次に下記コマンドを実行して公開鍵を先ほどの設定ファイルに書き込みます。

次に下記コマンドを実行してインストールを開始します。

CoreOS Release Notesを見てもらうと分かる通り、CoreOSにはリリースチャンネルが3つあります。
今回はブログの解説ということでstableを選択しましたが、ご自身の判断で選択してください。

インストール完了まではしばらく時間がかかりますので待ちましょう。
「Success! CoreOS stable current is installed on /dev/xvdb」と表示されたらインストール完了です。

次に下記コマンドを実行します

次に下記コマンドを実行してファイル内の(hd0,0)を(hd1,0)に置換します

ここまで終わったら下記コマンドで再起動します。

無事再起動が終わってログインが出来たら最後にCoreOSのアップグレード用にスクリプトを書きます。
下記のコマンドを実行してファイルを作成します。

※sudo su -でrootになってから実行しても良いです。

ファイルの中身は以下の通りです。

編集が終わったら

で保存します。


2014/12/16追記:下記コマンドで実行権限を付与しておかないとCoreOSのアップデートが正常にされないみたいなので忘れずに
実行権限ついてなければそりゃそうだという話かもしれませんが、私は忘れていてあれアップデートされないって迷ったので

以上でCoreOSのインストールは完了です。お疲れ様でした!

尚、CoreOSインストール後SSHの接続クライアントにPoderosaを利用しようとしたのですが、何故か一瞬で接続が切れる現象に遭遇しました。(Enterキーを押すとタブが消えてしまう。)
原因までは探れませんでしたが、Tera TermRLoginでは正しく接続することが出来るのを確認しました。
同様の現象が発生した場合は上記クライアントなどを利用してみてください。
私はこれを機にRLoginに乗り換えました。

終わりに

今回のインストールには、Installing CoreOS on Linodeを基に進めさせていただきました。※英語です。
cloud-config.yamlについてはCoreOS用のcloud-config.ymlを晒しておくを利用させてもらいました。

LinodeにCoreOSをインストールする方法を日本語で解説しているサイト等が見当たらなかったので今回記事にしてみました。
英語の解説ブログ等が苦手な方でLinodeでCoreOSを使ってみたいなーなんて人の参考になれば幸いです。

今回はCoreOSのインストールまでを解説しましたが、Dockerの使い方等も機会があれば記事にしたいと思います。
ですが、期待しないでお待ちいただければと思います。

あとでよむ / みんなにシェアする

このエントリーをはてなブックマークに追加
LINEで送る

コメントをする / みる

コメントを残す

コメントはまだありません。

検索する

カテゴリ一覧

タグ一覧

お知らせ アクセス解析 アプリケーション ゲーム サーバー スニペット プラグイン 動画 日記 Laravelパッケージ Laravel3 Laravel4 Tips Webサービス Webデザイン WordPress

最近投稿された記事

つぶやき

【GIGAZINE読者限定早い者勝ち】無料でDropbox・Googleドライブなどのクラウドを自由自在に同期・一括管理できる「まとめてクラウド」が先着5万人48時間だけゲット可能 - GIGAZINE gigazine.net/news/20151010-…

約2年前

離れていてもコミュニケーションが取りやすい便利なサービス「Remotty」 #remotty remotty.net

約2年前

RT @localdisk: メジャーどころがたくさん / 【セキュリティ ニュース】「WPTouch」など多数のWordPressプラグインに脆弱性(1ページ目 / 全1ページ):Security NEXT security-next.com/057930

約2年前

Javascript フレームワーク「Aurelia」aurelia.io

約3年前

dockerで起動済みのコンテナに対して何かしたい時は、docker exec -it コンテナ名 /bin/bashで入って実行したり、docker exec -it コンテナ名 supervisorctl restart nginxみたいな事も出来て便利。

約3年前

サーバー移転完了に伴いサイトの閲覧も可能な状態になりました。移転作業中にご訪問いただいた方には大変ご迷惑をおかけいたしました。今後このようなことがないよう気をつけて参ります。

約3年前

現在当サイトが閲覧出来ない状態となっております。こちらはサーバーの移転作業に遅れが生じているためとなっております。ご利用いただいている方にはご迷惑をおかけいたします。

約3年前

WordPress4.1.1(日本語版)が利用出来るようになりました wp.me/p4RkJY-Dj

約3年前

RT @keito_jp: Twitterをサマーウォーズ的に表示させるやつを製作中。遊んでみてね。 open.moo.jp http://t.co/gIgp5Gh6qW

約3年前

任天堂、YouTubeの広告収入を動画制作者とシェアする「Creators Program」サービス開始 | Game*Spark - 国内・海外ゲーム情報サイト s.gamespark.jp/article/2015/0…

約3年前

↑上へ戻る