AnsibleとVagrantとDocker [サーバ関連]
今参画している案件の関係で、ローカル端末→開発環境→ステージング→本番にいたる
社内開発環境の設計と試験構築を行っているわけなんだけど、
タイトル通り、どれを使うか試行錯誤中。
それぞれ、レイヤー的には同じ土俵ではないのですが、開発者から
してみれば使えればバックエンドはあまり気にしてないので、
・バージョン管理・運用がしやすい。
・構築からデプロイまでの時間を短縮したい。
という観点で試してます。
個人的にはansibleでサーバの構築からプロビジョニングまで
全部やってしまいたいのですが、社内にある程度自由に使える
*NIXの環境がなく、かつ開発者がみなwindowsなので、Windows環境に
一番適した物を選ばないと行けないのが…
Ansible→クラウドにそのまま構築して使ってもらうならコレが一番楽、
バージョン管理もしやすい、サーバ立ち上げからデプロイまで時間が多少かかるのが
難点(とはいえ、30分も1時間もかかるわけではないので、エクセル手順書よりはるかにマシ)
Vagrant(+VirtualBox)→Windows環境で構築しやすいのが利点。VagrantFileで
管理すれば制御もしやすい。ただし、VMがどうしても大きくなるので、ファイルサーバ
とかに管理しないと行けないのが問題(Gitには置きたくない…)
あと秘密鍵やファイル共有(shared)あたりではまることがあるので、整理が必要。
Docker→もう少し勉強すれば開発者のローカル環境はコレにしてしまいたい。
Docker for WindowsだとVagrantとどうも同居が出来ないようなのと、
ダウンロード時にDockerのアカウントを取得するのが面倒。
あくまでLinuxのコンテナ技術を使ってるので、内部でsystemctlでプロセス
立ち上げたり、サーバ間通信等だとどうしても制約が出るようなので、
コンテナの中にログインして何か設定するというステップを取り払えるとこまで
行けば使えそう。
いわゆるSIerなので世間から3周くらい遅れてる気もしますが少しずつ
整備していかないとです。
社内開発環境の設計と試験構築を行っているわけなんだけど、
タイトル通り、どれを使うか試行錯誤中。
それぞれ、レイヤー的には同じ土俵ではないのですが、開発者から
してみれば使えればバックエンドはあまり気にしてないので、
・バージョン管理・運用がしやすい。
・構築からデプロイまでの時間を短縮したい。
という観点で試してます。
個人的にはansibleでサーバの構築からプロビジョニングまで
全部やってしまいたいのですが、社内にある程度自由に使える
*NIXの環境がなく、かつ開発者がみなwindowsなので、Windows環境に
一番適した物を選ばないと行けないのが…
Ansible→クラウドにそのまま構築して使ってもらうならコレが一番楽、
バージョン管理もしやすい、サーバ立ち上げからデプロイまで時間が多少かかるのが
難点(とはいえ、30分も1時間もかかるわけではないので、エクセル手順書よりはるかにマシ)
Vagrant(+VirtualBox)→Windows環境で構築しやすいのが利点。VagrantFileで
管理すれば制御もしやすい。ただし、VMがどうしても大きくなるので、ファイルサーバ
とかに管理しないと行けないのが問題(Gitには置きたくない…)
あと秘密鍵やファイル共有(shared)あたりではまることがあるので、整理が必要。
Docker→もう少し勉強すれば開発者のローカル環境はコレにしてしまいたい。
Docker for WindowsだとVagrantとどうも同居が出来ないようなのと、
ダウンロード時にDockerのアカウントを取得するのが面倒。
あくまでLinuxのコンテナ技術を使ってるので、内部でsystemctlでプロセス
立ち上げたり、サーバ間通信等だとどうしても制約が出るようなので、
コンテナの中にログインして何か設定するというステップを取り払えるとこまで
行けば使えそう。
いわゆるSIerなので世間から3周くらい遅れてる気もしますが少しずつ
整備していかないとです。
インフラエンジニアになるとは [サーバ関連]
外道父(ドリコム齊藤氏)の書かれた「たのしいインフラの歩き方」を日々消化中。
楽しいどころか、自分にはまだまだ過ぎて毎日読み進めていて自分の力の無さを
思い知る日々。外道父氏の下で仕事すると死にそうだけど、やりがいは有りそうです。
AWS周りは知らないことが多く、さっそくアカウントだけとっていろいろ触ってます。
これだけメニューが多いと何やってイイかわからないし、JAWS-UGがあれだけ流行ってるのも
納得です。
あわせて、諸事情あって、Perlも再復習。手なりで勉強してきたところがあるので
定番の「始めてのPerl」を買ってきて、理解に抜けがないか再確認。
プラス、技評のサーバインフラ徹底攻略も購入。nginxとAWSですかね。他も取得したいが
頭がおっつきません…
そのうちちょっとブログを移動しようかなと。Qiitaとか。はてなはないな。
もうちょっと一貫して調べたこと、試したことをアウトプットしたい。
楽しいどころか、自分にはまだまだ過ぎて毎日読み進めていて自分の力の無さを
思い知る日々。外道父氏の下で仕事すると死にそうだけど、やりがいは有りそうです。
AWS周りは知らないことが多く、さっそくアカウントだけとっていろいろ触ってます。
これだけメニューが多いと何やってイイかわからないし、JAWS-UGがあれだけ流行ってるのも
納得です。
あわせて、諸事情あって、Perlも再復習。手なりで勉強してきたところがあるので
定番の「始めてのPerl」を買ってきて、理解に抜けがないか再確認。
プラス、技評のサーバインフラ徹底攻略も購入。nginxとAWSですかね。他も取得したいが
頭がおっつきません…
そのうちちょっとブログを移動しようかなと。Qiitaとか。はてなはないな。
もうちょっと一貫して調べたこと、試したことをアウトプットしたい。
サーバ/インフラ徹底攻略 (WEB+DB PRESS plus)
- 作者: 伊藤 直也
- 出版社/メーカー: 技術評論社
- 発売日: 2014/10/30
- メディア: 大型本
【自分用メモ】rsync続き。 [サーバ関連]
http://wassa8611.blog.so-net.ne.jp/2015-01-14
前のエントリに関連して。
☆バージョンについて
CentOS環境だと標準のリポジトリでは3.0.6まで。
公式(https://rsync.samba.org/)の最新バージョンは
3.1.1なので、最新版をインストールしたければ、
A) ソースからコンパイル
B) サードパーティ(ius-community)からリポジトリを取得してyumでインストール
今回はB)を選択。
1)ベースの最新リポジトリは
http://dl.iuscommunity.org/pub/ius/archive/CentOS/6/x86_64/ius-release-1.0-11.ius.centos6.noarch.rpm
なのでこれをダウンロードして
2) rpm -ivhでリポジトリをインストール
3) rsync31uをインストール、ただし、あらかじめrsyncが入ってると依存でぶつかってしまうので、
事前にアンインストールする必要がある。
機能はあまり変わってない気がしますがchangelogを確認中です。
FreeBSD環境だとどうなってるかはまだ未調査なので続きます。
前のエントリに関連して。
☆バージョンについて
CentOS環境だと標準のリポジトリでは3.0.6まで。
公式(https://rsync.samba.org/)の最新バージョンは
3.1.1なので、最新版をインストールしたければ、
A) ソースからコンパイル
B) サードパーティ(ius-community)からリポジトリを取得してyumでインストール
今回はB)を選択。
1)ベースの最新リポジトリは
http://dl.iuscommunity.org/pub/ius/archive/CentOS/6/x86_64/ius-release-1.0-11.ius.centos6.noarch.rpm
なのでこれをダウンロードして
2) rpm -ivhでリポジトリをインストール
3) rsync31uをインストール、ただし、あらかじめrsyncが入ってると依存でぶつかってしまうので、
事前にアンインストールする必要がある。
機能はあまり変わってない気がしますがchangelogを確認中です。
FreeBSD環境だとどうなってるかはまだ未調査なので続きます。
【自分用メモ】rsync [サーバ関連]
すぐ忘れてしまうのでメモ。
☆rsync…ファイルの同期・コピーに使うコマンド
手元のサーバから別のサーバに送り込むパターン(push)
手元のサーバから別のサーバにアクセスして、引っ張ってくるパターン(pull)
☆使い方
rsync [オプション] [コピー元1] [コピー元2]… [コピー先]
※コピー元は複数設定できる
☆最低限のオプション
-a コピー元のパーミッションやグループ、作成日を保持したままコピー。ほぼ必須
-v 処理中のファイルを表示
-n, --dry-run 実際に実行はせず、実行する際の動作を確認できる。手動でやるときは必ず確認した方がいい
-r 再帰的にバックアップ。ディレクトリの下もコピーしたい場合は使う
-z データを圧縮してコピ-。ファイルが大きいなら必須。
--delete コピー元で削除されたものはコピー先でも削除する。使うなら、-nで削除されるものを確認してから。
☆使い方
ポートが22番以外を使ってるとき
$ rsync -av -e 'ssh -p 20022' ~/tmp remote-server:/var/tmp
☆参考元
http://www.itmedia.co.jp/enterprise/articles/0804/21/news013.html
http://www.itmedia.co.jp/enterprise/articles/0804/25/news034.html
☆rsync…ファイルの同期・コピーに使うコマンド
手元のサーバから別のサーバに送り込むパターン(push)
手元のサーバから別のサーバにアクセスして、引っ張ってくるパターン(pull)
☆使い方
rsync [オプション] [コピー元1] [コピー元2]… [コピー先]
※コピー元は複数設定できる
☆最低限のオプション
-a コピー元のパーミッションやグループ、作成日を保持したままコピー。ほぼ必須
-v 処理中のファイルを表示
-n, --dry-run 実際に実行はせず、実行する際の動作を確認できる。手動でやるときは必ず確認した方がいい
-r 再帰的にバックアップ。ディレクトリの下もコピーしたい場合は使う
-z データを圧縮してコピ-。ファイルが大きいなら必須。
--delete コピー元で削除されたものはコピー先でも削除する。使うなら、-nで削除されるものを確認してから。
☆使い方
ポートが22番以外を使ってるとき
$ rsync -av -e 'ssh -p 20022' ~/tmp remote-server:/var/tmp
☆参考元
http://www.itmedia.co.jp/enterprise/articles/0804/21/news013.html
http://www.itmedia.co.jp/enterprise/articles/0804/25/news034.html