ブログ1コマンドで作った。誰でも利用できますか?スマートフォンサイトも計測できますか?どの機能から使うべきか迷っています。2016/11/281コマンドで作った。技術情報Tweet最近の開発現場ではコードによる構成管理が注目されています。最終的にたった1コマンドで開発環境を作り上げてしまう事をゴールにプロジェクトを作成していきます。VPSのインスタンスを作成しました。使ってLAMP環境を構築していきます。Hat社が公開している構成管理ツールの一つです。正確には、デプロイメントツールやオーケストレーションツールを含めた3つの役割が統合された、幅広い事が行えるツールです。メリットはSSHとYamlを利用しているので簡潔に素早く設定ファイルを作成し、作って壊す事が簡単に出来ることです。使うメリット等は下記のサイトで紹介されています。参考サイト下記の情報を元に、プロジェクトを作成していきます。さくらのナレッジLAMPは下記ページを参考にしています。Qiitaなお、生成物はGitHubで公開しました。そちらも合わせて参照していただくと、より理解が進みやすいかと思います。ベストプラクティスを考慮したディレクトリ構造を作成していきます。使用する時はdefaultディレクトリを丸ごとコピーした別のディレクトリを作成し、そのフォルダ内で各種vagrantコマンドを実行する想定です。site.ymlVagrantfileプロジェクトのVagrantfileを参照してください。Ansibleに関する記述は42行目からの一連の塊です。endVagrantfileのあるディレクトリから一階層遡った所にあるprovisionフォルダをConoHaの仮想マシン内の「/tmp/provision」と同期させています。これによりプロビジョン実行時に「/tmp/provision」の配下からAnsibleの各種ファイルにアクセスすることができます。provision」コマンドで何度でも実行出来ますので、まずは仮想マシンを作成します。upロールの作成provision/rolesディレクトリの配下にロールと同じ数だけのディレクトリを作成します。今回はLAMPサーバーを構築する為に下記の3つを作成します。同階層にトップレベルのPlaybookを作成していきます。本番環境でWebサーバーとDBサーバーに分ける可能性がある想定で、下記の2つのプレイブックを作成します。Apacheをインストールしていきます。今回利用するイメージはUbuntuなので、パッケージ管理のAptを利用することが出来ます。apache2」のコマンドでインストールが出来るようです。-y」等と記述しても良いのですが、Ansibleで用意されているパッケージモジュールを利用することで冪等性を保つ事が容易になります。ModulesからAptのページをを探します。apt-packagesにありました。ページは全て英語ですが、ExamplesとOptionsを交互に見ながら作成していきます。apache2をインストールする箇所のみ記載します。</body></html>見事Webサーバーが立ち上がりましたね。ブラウザを開いてIPアドレスを打ち込むとApacheのデフォルトページが表示されます。同様にPHP、MySQLもインストールします。livapache2-mod-phpの3パッケージ、MySQLはmysql-serverの1パッケージが必要なようです。main.ymlにも忘れず追記します。[localhost]仮想マシン内にログインしてPHPとMySQLのインストールの確認を行います。(Ubuntu)どちらも動作しました。一通り納得出来るタスクが作成できたら、一度インスタンスを削除してからもう一度立ち上げなおして確認します。haltからdestroyは反映されるまで時間がかかりますので、ConoHaの管理画面で作業終了を確認しながら実行していきます。初回のAnsibleのインストール中にエラーが発生して停止してしまうようです。provisionコマンドを実行します。PHP)が意図通りに動作する事を確認します。一度対象のマシンにログインしてシンプルなファイルを設置してから、そのURLにアクセスして設置したファイルがPHPで評価されることを確認できました。133.xxx.xxx.313引き続きMySQLサーバーの動作を確認します。サーバー内からmysqlコマンドを実行して動作することが確認できました。修正した内容をすぐに確認する事が出来ません。VPSに直接ログインして、VimやEmacs等のエディターで開発している方にとっては問題ではありませんが、ローカルマシンでIDEやエディターを使って開発している方には障害となりえます。試行錯誤するとvagrant-gatling-rsyncプラグインが使用出来たのでご紹介します。等のパッケージ管理を操作している事は変わりません。OSやディストリビューションを跨いだりバージョンが上がったりする度に作り直しとなります。この辺の事情があり、残念ながら全ての手間がなくなる銀の弾丸とは程遠い印象を受けました。冪等性を保ちつつ新しいパッケージを導入したり、パッケージを増やしたり減らしたりすることがとても楽になりました。まとめいかがでしたでしょうか。タイトル通り1コマンドとは行きませんでしたが、かなりそれに近いレベルの事が実現できました。このやり方を使えば、新しくジョインしたメンバーにはドキュメント代わりに共有できますし、Gitのブランチを切るくらいの気軽さでサーバーを立ち上げられます。masterブランチに該当する仮想マシンをセットアップ出来るPlaybookとして用意しておけば、不具合が出た時の検証も格段に楽になります。次回では更に、Dockerを組み合わせて今時の環境を構築していきます。以上、「1コマンドで作った。よるコードによる構成管理」でした。最後まで読んでいただきありがとうございました。導入検討や他社ツールとの違い・比較について弊社のプロフェッショナルが喜んでサポートいたします。弊社のプロフェッショナルがコンサルティングいたします。今すぐお気軽にご相談ください。今すぐお気軽にご相談ください。10:00~19:00)今すぐお気軽にご相談ください。10:00~19:00)グラッドキューブは「ISMS認証」を取得しています。定めた企業の情報情報セキュリティマネジメントシステムの評価制度です。いますぐ無料でお試しください。トライアル終了後も無料でご利用いただけます。Reserved.サイト内の記事・写真・アーカイブ・ドキュメントなど、すべてのコンテンツの無断複写・転載を禁じます。Reserved.サイト内の記事・写真・アーカイブ・ドキュメントなど、すべてのコンテンツの無断複写・転載を禁じます。