sensu-clientのリポジトリをどのように管理しようかな(git remote編)
こんばんは。顔に疲労のでないイケメンになりたい私です。
同僚のy13iサンがsensu-server環境を作ってくれたので、クライアント登録や通知のテストをしていきます。
さてGithubに自前のsensu client監視用テンプレート(というかchefのリポジトリ)があったとします。
これをベースに他のリポジトリに移植して利用したいときどうしましょうか。
今回はgitのリモートリポジトリ登録を試したいと思います。
ベースリポジトリにはbundler, berkshelf, sensu等, sensuをchef-soloで利用するための環境が入っています
orenomac$ git clone <github_repository> orenomac$ git remote add ope-sensu-test <repository_URL>/sensu-test.git
- リモートリポジトリへの初回プッシュ
orenomac$ git push -u sensu-test master Counting objects: 356, done. Delta compression using up to 4 threads. Compressing objects: 100% (180/180), done. Writing objects: 100% (356/356), 43.50 KiB | 0 bytes/s, done. Total 356 (delta 148), reused 343 (delta 142) To sensu-test.git * [new branch] master -> master Branch master set up to track remote branch master from sensu-test.
- 作業ブランチを登録したリモートリポジトリに変更
orenomac$ git checkout sensu-test/master
- 対象ホストにchef-clientをインストール
node/
orenomac$knife solo prepare -F ssh_config sensu-client1
- 作業
orenomac$ git branch sensu-client-test orenomac$ git checkout sensu-client-test Switched to branch 'sensu-client-test' ※作業ブランチで目的の作業を行う(httpd監視設定とか) orenomac$ git commit [sensu-client-test 6d75492] テスト用クライアントの登録 2 files changed, 3 insertions(+), 2 deletions(-) create mode 100644 nodes/sensu-client1.json orenomac$ git push sensu-test sensu-client-test
- 適用
今回はsensu-client用ノードにsensu-clientをインストールして、rabbitmqへポーリングするだけのrecipeを適用しています。
orenomac$ bundle exec knife solo cook -F ssh_config sensu-client1 Running Chef on sensu-client1... Checking Chef version... Installing Berkshelf cookbooks to 'cookbooks'... ・ ・ 省 略 ・ ・ Recipe: <Dynamically Defined Resource> * service[sensu-client] action restart - restart service service[sensu-client] Running handlers: Running handlers complete Chef Client finished, 31/54 resources updated in 63.580449321 seconds
無事登録出来ました。(なんで自分で作ったらできなかったのだろうか)
- 作業ブランチをremote/masterブランチにマージ
書いたrecipe適用がOKだったらmasterへマージします。 NGだったら作業ブランチを破棄します。
orenomac$ git checkout master orenomac$ git merge sensu-test/sensu-client-test Updating d210296..6d75492 Fast-forward nodes/sensu-client1.json | 1 + orenomac$ git push sensu-test master orenomac$ git -d sensu-test sensu-client-test orenomac$ git push --delete sensu-test sensu-client-test
以上で作業完了です。これは自動化できますね〜。あとテスト。
- 所感
origin/master残ったままなので確実にoriginへpushしてしまいそうでむちゃくちゃ怖い。エイリアス変えてしまえばよいのかな?
テンプレートはBerkshelfで/vendor/cookbooks/に拾ってきて
override attributeで対処したほうがorigin/masterにプッシュすることないからいいかも。
Git力が足りない。
次はいつもつかってるBerkshelfで試したいと思います。