2のVMを構築しようインフラはじめにこんにちは!株式会社デザインワン・ジャパンでインフラ業務を担当している情報戦略部の冨田(@komitta)です。本日よりデザインワン・ジャパンのテックブログを開設いたしました。業務で培った内容をアウトプットし、世の中の発展につながることを目的としてゆるく続けていければと思っております。エキテンを始めとしたサービスの大半はAWS環境で動かしております。AWSは使った分だけ課金される従量課金制のため、AWSにサーバーを構築した場合起動した分だけコストが発生いたします。そのため数は少ないですが以下要望が社内であがっておりました。2のVMを構築しました。ProxmoxについてVMを動かすためのHypervisor環境としてオンプレサーバーにはProxmoxを導入しました。Hypervisorの有名どころでいうとVMwareのESXiやMicrosoftのHyper-Vとかが挙げられますが、あえて今回はマイナー(?)な製品を入れております。使っていたのでESXiでも良かったのですが、どうせなら触ったことのないものを試したいという思いもありこちらを選びました。触ってみてよかった点はベースのOSがLinux(Debian系)のKVMのため、トラブル時にLinuxの操作コマンドで対応がしやすい*1です。基本GUI管理コンソール画面から操作は行うのですがOSにSSHログインして直接ファイル変更による操作も可能だったためすごく楽な印象でした。2のVMを構築する本題です。Proxmoxの構築についてはここでは触れません。VMの構築は先人の方がまとめてくださった下記記事に沿って作成*2しました。qiita.comCloud-Initで作成するユーザーにSSHの公開鍵を設定することでSSHログインが可能になります。弊社ではAnsibleを使ったOSのプロビジョニングを行っているため、Ansibleが実行できるようSSH公開鍵を設定およびIPアドレスを設定しました。よるプロビジョニングローカル環境からプロビジョニングを行うためのディレクトリ構成を以下に記載します。dockerコンテナよりAnsibleのplaybookを流すことができるように、Ansibleの構成ファイルとdocker-compose.ymlファイルを同じディレクトリに設置しました。site.yml(実行するplaybook。id_rsa./ansible/devインベントリファイルにホスト名を記載しています。Imageを作成します。sshクライアントとAnsibleをインストールし、ここではVMに設定した公開鍵のペアである秘密鍵*3の格納を行います。マウントさせることで、ローカル上でAnsibleのplaybookを更新してすぐに反映できるようにしております。extra_hostsにインベントリファイルに記載した名前(OSのホスト名)とVMに設定したIPアドレスを記載します。することでコンテナの/etc/hostsにOSのホスト名とIPアドレスが記載されるため、インベントリファイルに記載したホスト名に対してplaybookを流すことができるようにしました。コマンドを使用することでVMのプロビジョニングが実行されます。2環境と同様の環境を用意することができます。一発目の投稿内容にしては需要が少ないであろうニッチな話題になってしまいましたが、オンプレ好きにとっては作っててすごく楽しかったです。仲間を募集しております募集中の職種については以下を御覧ください。Cloud*1:ESXiの場合、独自UNIXのコマンド体系だったため調査がしづらかった印象がありました。構築手順についてマニュアルがあり、マニュアルに記載しているseed.isoを使った起動を行うこともできますが、Proxmoxには管理画面からCloud-Initが使用できるためこちらの記事を参考に作成させていただきました。*3:Git等でコード管理している場合は、秘密鍵等の機密情報を直接アップロードしないよう注意が必要です。エキテンリニューアルにおけるクリーンア...プロフィール店舗の口コミ・ランキングサイト「エキテン」を運営する、株式会社デザインワン・ジャパンの技術ブログです。9引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。