• gitlabの導入方法のメモ

    こんにちは。小宮です。先輩から要望されていそうな気がしたのでgitlab導入時のメモです。。 やたらめったら長いし手順が複雑でこのとおりやって再現できるかはお使いの環境に依存する可能性があり保障できかねます。 この手順で再現した環境はOSはCentOS6.5でした。 postgresを許容できるのであれば自動的に入れられるオムニバス版があるのでそちらをお使いいただくのがよろしいかと。 個人的にpostgresの運用の知見が心もとなかったのと、RDSに逃げられなくなるのがアレだったのでmysqlで頑張りました。 自分で自動化する時は、passengerとgitlab:setup時の対話処理をなんとか自動化するオプションを付けるとこがキモかと思いました。 この手順自体は部分的にchefがでてきますがほぼ手動です。自動化オプションは最後のほうにちょろっと書いときます。 1.このへんからmysqlをなんとかして入れとく $ wget http://ftp.jaist.ac.jp/pub/mysql/Downloads/MySQL-5.6/MySQL-5.6.17-1.linux_glibc2.5.x86_64.rpm-bundle.tar -P site-cookbooks/mysqld/files/default/usr/local/src/ 2.rbenv等でrubyをなんとかして入れておく (chefでなにもせずにやるとchefgemに寄るので注意がひつよう) rubyのバージョンが低いとGemfileのシンタックスチェックでエラー出てmysql2とかが入らないことも。 3.Gitのインストール # yum -y install libcurl-devel libxslt-devel libxml2-devel expat-devel gettext openssl-devel zlib-devel Installed: libcurl-devel.x86_64 0:7.19.7-37.el6_4 libxml2-devel.x86_64 0:2.7.6-14.el6 libxslt-devel.x86_64 0:1.1.26-2.el6_3.1 Dependency Installed: libgcrypt-devel.x86_64 0:1.4.5-11.el6_4 libgpg-error-devel.x86_64 0:1.7-4.el6 # su - chef;cd infra-chef-repo/ $ knife cookbook create git -o site-cookbooks $ knife cookbook create redis -o site-cookbooks $ vi site-cookbooks/git/recipes/default.
    ...
  • opsだけどgitを使ってみた~その2

    こんにちは。小宮です。 前回のつづきです。今回はgitマージとタグとコンフリクトの話を書きます。 まあ初心者が慣れてきた頃の様子ということで生温かく見守ってください。 git-flowやブランチモデルがどうという話はでてきません。 git branch でブランチを切る 現在居る場所を確認する $ git branch -a add_custom_repository * master addしただけのやつがないのを確認します。 $ git status # On branch master # Changed but not updated: # (use "git add <file>..." to update what will be committed) # (use "git checkout -- <file>..." to discard changes in working directory) # # modified: .
    ...
  • source treeを使ってgitlabを触ってみる(2)

    おはようございます。インフラ宮下です。 前回source treeのインストールと鍵の登録までを説明しましたので、今回はgitlabとの接続について説明します。 社内にgitlabがあるのでgitlabとの接続が前提となります。 (もちろんgitlabのアカウントもある想定) gitlab gitlabの自分profile画面のメニューで「SSH keys」を選択します。 既に登録されている鍵の一覧が確認できます。右上にある「Add SSH key」をっクリックします。 鍵登録の画面に移ったら、Titleに識別し易い名前を(入力しないと自動生成されます)入れて、Keyの所に前回作成した公開鍵を貼り付けたら「Add key」で登録します。 登録keyの一覧に表示されたら無事登録は完了です。 再びsource treeに戻ります。 ではgitlabのリポジトリをcloneします。「新規/クローンを作成する」で開始します。 今回は、gitlabのリポジトリを使いますので、「リポジトリをクローン」タブを選択して、 ・元のパス/URLにgitlabの接続先情報を入れます。 (例:http://192.168.0.250/infra/projectX.git) 社内gitlabはhttpでの接続が出来ますが、gitであったりsshでも接続出来る方法なら何でも大丈夫です。 入力したら自動で接続確認が行われて接続成功・失敗が確認出来ます。 ・保存先のパスにクローンしたデータの保存先を指定します。 ・リポジトリをブックマークはそのまま選択状態にしておきます。 ・名前はsourcetree上で表示される名前なので、どのリポジトリかわかるような名前を付けておいてください。 必要事項を入力したら「クローン」でスタートです。 データ量によりますが、しばらく待つと保存先のパスにクローンが完了します。 無事登録されました。これでsourcetreeからgitライフが可能となります。 基本的な作業として、pushするまではこんな感じです。 PC側でファイルの修正をすると変更アイコンに変わりますので「追加」をクリックするかファイルの所をクリックします。 するとindexにステージしたファイルの方に更新ファイルが移動します。 次に「コミット」を選択するとコメントが記入できるようになりますので、規則にのっとったコメントを記載して「コミット」します。 コミットすると「プッシュ」マークの所に赤抜きの数字が現れます。これがプッシュするフィルがあります、という記しなので修正が全て完了したらプッシュします。 そのままプッシュしても良いのですが、多人数で作業しているとコンフリクトする事もありますので一回「プル」しときます。 masterとの差分が無い事を確認した上で「プッシュ」します。 gitlabのダッシュボードを見てみるとpushされた事が表示されます。 内容を細かく確認してみると、差分など変更内容を確認する事が出来ます。 ここまでが基本操作で、実際はブランチ切ったりマージしたり、チェックアウトしたりと運用していくにはまだまだ覚える事はあります。 それは管理者さんのポリシーに則って実施しましょう。 (操作方法の説明はまた別の機会に) ありがとうございました。
    ...
  • opsだけどgitを使ってみた~その1

    こんにちは。小宮です。 opsだけどgitを使ってみた~その1ということで、githubもgitlabもgitも初心者なので忘れないようにメモ。 今回はたどたどしくpushするところくらいまでにします。branch切ってみるとこは初回から書くとおなかいっぱいになりそうなので。 たぶんその2までです。その2はbranchとtagとconfrictのことを書いています。 背景とメリットデメリット ・背景 昨今の継続的インテグレーションだとかでchefでサーバ構築の需要があってその流れ弾に当たった機会を得たため、 そのリポジトリをバージョン管理する必要が生じましてgitをつかうことに。最初は会社のエンタープライズ版のgithubに保存してもらっていたんですが、 VPN経由でのやり取りの需要からgitlabの導入を行うことになりました。 ・gitのメリット ヒストリ追わなくていい。見える化。ファイル内の差分が見やすいので確認がブラウザで容易に可能になる ・gitのデメリット 同僚がつかいはじめてくれない(必要にせまられないと忙しくてスルー傾向) まあなんか気持ちはわかります。私もきっかけは半ば強制的な感じでした。 githubとgitlabの違い gitコマンド的にはあんま変わんない気もしますが、制度がオープン(エンタープライズはクローズ可)かクローズでいけるか、 gilabの場合は容量制限もディスク容量とかの環境次第でユーザ権限を細かく設定できたりなどするのがいい感じです。 もっというとVPN越しにしかつながらないようにしたいとかの自由がききます。共有Webサービスつかうか自前構築のつかうかの差です。 gilab導入の手間は最近はchefで気軽に入るレシピもあり軽減されてきたようです。 githubの場合、二段階認証をなんとかする 詳細な説明は省きますが、まずgithubに登録して会社のgithubの二段階認証をなんとかします →会社で用意していただいたマニュアルのとおりに実施。 要はgmailの2段階認証みたいなことで携帯にSMS通知が届いて認証する仕組みのセットアップです。 接続するホストでsshの鍵の作成と、作成した公開鍵の登録をgithub側のユーザプロファイルで行います。 pushするホストでgitを初期設定する まずgitコマンド打つ人のユーザ情報を登録です。 git config --global user.email "komiyay@xxxxx"` git config --global user.name "Yxxx Komiya" 設定ファイルにメモリ制限やスレッド数を指定しないとOutOfMemoryエラーが出ます。 $ vi ~/.gitconfig [user] email = komiyay@xxxxx name = Yxxx Komiya [core] packedGitWindowSize = 128m packedGitLimit = 128m [pack] windowMemory = 128m threads = 2 deltaCacheSize = 128m packSizeLimit = 128m ※m1.
    ...
  • source treeを使ってgitlabを触ってみる(1)

    おはようございます。インフラの宮下です。 社内で稼働中のgitlabがあるのですが、CLI使える人が少ないせいかgitしている人が思った以上に少ないのに困ってます。 最近はWindowsのツールでも充分にGitの体験が出来るようですので、今回は「SourceTree」を紹介したいと思います。 アンチCLIの方は「SourceTree」でも十分git操作可能ですのでまず手始めに利用してみては如何でしょうか。 そもそもGitの意味がわからないという人はごめんなさい。いずれgitの構築も誰かが書いてくれると思いますので今回は割愛します。 git知識としてはとってもわかりやすい下記サイトをご覧ください。 サルでもわかるGit入門 バージョン管理システム入門 分散型バージョン管理システムなので、みんなで使ってたまにはデグレしたりと苦い経験をしておいた方が良いと思ってます。 バックアップとかしっかりしておけば傷は浅く済むと思います… chefと連携しても良いと思いますし、configを管理してバージョンや差分を管理するでも良いですし、単にreadme的な手順を管理するでも何でも用途は良いと思います。 1)SourceTreeをインストールする Source tree公式サイトから今回はwindows7版のファイルをDownloadします。 ダウンロードした実行ファイル「SourceTreeSetup_1.6.13.exe」をダブルクリックしてインストールを開始します。 ほぼ流れにのってインストールするだけで終わります。 「グローバル無視設定ファイル」の作成を聞かれますが「Yes」「No」今の所どちらでも良いです。 今回は「Yes」にして進みます。 publicのリポジトリ設定をすると接続する事が出来ます。アカウントがあればアカウント・ユーザ名・パスワードを入力してください。 今回の用途は自社内のgitlabとの接続なので「スキップ」します。 最後にSSHキーの読み込みをするか聞かれます。既に持っている場合は登録しても良いですが後でも出来るので「No」としておきます。 2)SSH鍵を作成して登録 gitlabにつなぐ為に作業PCの鍵を登録します。 SourceTreeを起動してまずはSSH鍵の作成と登録を行います。 既に作成した鍵がある場合はあえて作成する必要はありません。 「ツール」→「SSHキーの作成/インポート」でPuttyKeyGeneratorを起動します。 「Generate」をクリックしたらマウスをたくさん動かしていると鍵の作成が完了します。 公開鍵は「Save public key」クリックしgitlab-test.pubとして保存します。 秘密鍵は「Save private key」クリックしてgitlab-test.ppkと保存します。 ※セキュリティ上、key passphraseを入れた方が良いですよ。 最後に秘密鍵の登録を行います。「ツール」→「オプション」の「全般」からSSHクライアントの設定の所に先程保存した秘密鍵を指定します。 予想以上に長くなってしまいましたのでgitlabとの接続は次回にします。 とってもわかりやすいsourcetree導入支援サイトさんです。 あおたくノート SourceTree for WindowsからGitを利用する
    ...