RHEL6.5(RedHat Enterprise Linux 6.5)にAnsibleでDockerをインストールする

RHEL6.5にAnsibleでDocker環境つくっちゃおう♪

docker上に作ったansibleなサーバからvmhostのRHEL6.5にdocker環境を作ってしまいます。

入門Ansibleとか、Docker入門 Immutable Infrastructureを実現するを読んでおくと、理解が早いかもしれません。電子書籍だとタブレット一つで沢山持ち歩けるので便利ですよねd(^ー゜*)

今回は、ansibleな環境をdocker上に作ってしまったため、sshのノンパスキーが旨く作れなかったので、パスワード認証にしちゃいました・・・(作れたけど起動し直すたびにホスト名変わりますよね。id_dsa.pubファイルの最後にアカウント@ホスト名みたいなのが付くんだけど、これが為に恒久的でなはいというか。)

1. inventoryなホストファイルを作成

serversな識別に、たくさんのサーバをぶら下げる想定です!

インストール先のvmhostのデフォルト環境をpackerでvagrantのbox作っちゃったりした後の想定です。
sudouserがsudopasswordというパスワードで存在することにしてください。
また、一度sshで接続して、known_hostsに登録されているようにしてください・・・(注文が多くてすみません)

/etc/ansible/hosts

2. playbookファイルを作成

えーと、sed -i -e の所! lineinfileというモジュールがあるので、置き換えてください。。。

コレ!公式ドキュメント読むと update なのか例にあるupgradeなのかわかんなくなるよ。

subscription-managerもモジュールになってるんだけど、まだバギーらしい。登録するuserとpasswordは適宜環境に合わせて修正してね。

device-mapperのパッケージだけど、前回使ってたのが 404 not found になってて、どうやらバージョンアップしたらしい。直接指定だから難しいけど、state=latest な感じにできればいいな。yumのパッケージのバージョンが上がればこんな無茶はいらないんだけどなぁ~

proxyは環境に合わせて不要なら外してね。
IPADDRESSって書いている所は適宜編集してね。

3. 流し込み!

インストール先のホストの/var/log/messagesにも、実行されたコマンドが出力されるので、実行側の結果と照らし合わせてみると進行状況とか良くわかっていいかもです。
・・・が、Ansible使うんだし、インストール先にログインしちゃダメですかねwww
ひな形作る、try&errorの時だけにしますね(ノ∀`*)

dockerでgithubライクなサーバ(gitprep)を構築する

環境

ubuntu15.04
dockerがインストールされている状態
dockerコンテナのOSはcentos6.6を利用
github互換サーバに gitprep を利用

概要

  1. docker pullで centos6を取得する
  2. github互換サーバ用のDockerfileを作成する
  3. フロントにnginxでWebサーバを起動しEXPOSEでポートをつなぐ

手順

  1. docker pullで centos6を取得する
    jdeathe/centos-sshがcentos6.6のイメージによさそうだったので選択
  2. github互換サーバ用のDockerfileを作成する

    ココで、 -p で 10020番ポートをホストOSとつなぐ必要は無し
    –name に指定した名前が重要となる。後で出てくるfrontサーバは、このnameに対してProxyの接続を行う。
  3. フロントにnginxでWebサーバを起動しEXPOSEでポートをつなぐ

    これで、ホストOSの80番ポート → frontコンテナの80番ポート → gitServerの10020番ポート とつながります。

git pushの問題

git push した際に、以下のようなエラーが発生する場合はバッファ値の設定が小さい為です。

起動スクリプトに以下の環境変数をセットします

gitコマンドのglobal設定のpostbufferを大きく(1GB)します。上記Dockerfileに以下を追加しておきます。