VMwareにubuntu(12.04)を入れてgitlabを立てるまで。メモを残しておく。
目的:gitlabをインストールし、同一LAN内から利用可能とする。
サーバのバックアップと復元とかわかんなーい、といわれたら、
「ubuntuをシャットダウンした後、仮想ディスクのフォルダを丸ごとバックアップ。復元はその仮想ディスクから立ち上げるだけでOK!」
という運用も可能にする。
現在の課題:
gitlabのバックアップ方法まとめ。
gitlabの定期UPDATE手順のまとめ。
これについては実際の作業をやりながらまとめていきたい。
解決済み:
ユーザが自分でサインアップできるようにするオプションの設定方法
gitlabを動かしているサーバのIPアドレス、ドメインを変更したい場合の作業手順まとめ。
IP変更のみだが、おそらくドメインも同じ
運用環境
ホスト:windows7 ゲスト:ubuntu
ubuntsOSのネットワーク設定はブリッジとして、他のPCからのアクセスも可能とする
VMwareへのUbunuインストール(日本語版を使いたいため簡単インストールを使わない)
ubuntuの日本語版ISOをダウンロードしてくる
vmwareで新しい仮想マシンを作成する
あとでOSをインストールを選択
Linux>ubuntu を選択
仮想ディスクを単一ファイルとして格納
ハードウェアをカスタマイズ
ネットワークアダプタ をブリッジに。
インストール用のISOを設定してインストールを開始
管理>VMware toolsのインストールを選択(guest-host間のコピペとかできるようになる)
中身をhomeフォルダにコピー
展開先に移動後、
sudo ./vmware-install.pl
を実行。エンターを連打してよきに計らってもらう。
完了後に再起動する
IPアドレスの固定化
DHCPに毎回決まったIPを自動で割り振ってもらうか、自分でIPを固定する
とりあえずこのメモ内では、下記のようにIPを固定したと仮定。
システム > ネットワーク > 有線 > オプション > IPv4設定タブ
アドレス:192.168.1.201
ネットマスク:255.255.255.0
ゲートウェイ:192.168.1.2 (ルータのIP)
DNSサーバ:192.168.1.2 (ルータのIP)
また、ブラウザからのアクセスには、10080ポートを利用する。
(http://192.168.1.201:10080/ でアクセスする)
https://github.com/gitlabhq/gitlabhq/blob/5-0-stable/doc/install/installation.md
を参考にひたすらコピペ。
rubyのバージョンが!とかは考えない。
そういうのは内容が分かるようになってからにする。
ただひたすらに書かれているままにコピペする簡単なお仕事。
1. Packages / Dependencies
#システムを最新版に。sudoのインストール?
sudo apt-get update
sudo apt-get upgrade
#vim(エディタ)のインストール
sudo apt-get install -y vim
#必要なパッケージのインストール
sudo apt-get install -y build-essential zlib1g-dev libyaml-dev libssl-dev libgdbm-dev libreadline-dev libncurses5-dev libffi-dev curl git-core openssh-server redis-server postfix checkinstall libxml2-dev libxslt-dev libcurl4-openssl-dev libicu-dev
#途中で、メールサーバの設定?(Postfix Configration)をきかれたので、設定なしを選んだ
設定なし
#pythonのインストールとバージョンの確認。パイソンはすでに入っていた
sudo apt-get install python
python --version
python2 --version
2. Ruby
#rubyのインストール
mkdir /tmp/ruby && cd /tmp/ruby
curl --progress http://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p327.tar.gz | tar xz
cd ruby-1.9.3-p327
./configure
make
sudo make install
#bundler gem のインストール
sudo gem install bundler
3. System Users
#Gitlabのために git ユーザを追加
sudo adduser --disabled-login --gecos 'GitLab' git
4. GitLab shell
#この部分がGitlab 4.xから大幅に変更になった部分。やらなきゃいけないことがすごくへってる!
#GitLab Shell is a ssh access and repository management software developed specially for GitLab.
#GitLab shell は、sshアクセスとリポジトリ管理をするために、Gitlabのための特別に作られたソフトウェアらしい
#gitユーザに切り替え
sudo su git
# home directory へ移動
cd /home/git
# gitlab shell のクローン
git clone https://github.com/gitlabhq/gitlab-shell.git
cd gitlab-shell
git checkout v1.1.0
git checkout -b v1.1.0
cp config.yml.example config.yml
# config.ymlを編集する。URLの設定とかそういうやつ。
# URLの部分をhttp://192.168.1.201:10080/"に変更した
vim config.yml
#インストール
./bin/install
5. Database
#Databaseのセットアップ
#MySQLを利用する
#gitユーザのままだとapt-get時にパスワードを聞かれてうまくいかなかったので、gitユーザから抜けておく
exit
# データベースパッケージのインストール
#rootのパスワードを聞かれるのでなにか適当なパスワードを設定する
sudo apt-get install -y mysql-server mysql-client libmysqlclient-dev
# MySQLにログイン
mysql -u root -p
#パスワードを聞かれるので設定したパスワードを入力
# GitLab用のユーザを作成. ( $password は実際に利用するパスワードを記述)
mysql> CREATE USER 'gitlab'@'localhost' IDENTIFIED BY '$password';
# GitLabが利用するデータベースを作成
mysql> CREATE DATABASE IF NOT EXISTS `gitlabhq_production` DEFAULT CHARACTER SET `utf8` COLLATE `utf8_unicode_ci`;
# 作成したデータベースに、GitLab ユーザが必要とする権限を付与.
mysql> GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER ON `gitlabhq_production`.* TO 'gitlab'@'localhost';
# MySQLからログアウト
mysql> quit
# ubuntu上のgitユーザから、Mysqlに作成したユーザ、データベースに接続可能か確認
sudo -u git -H mysql -u gitlab -p -D gitlabhq_production
6. GitLab
# gitユーザのホームディレクトリへgitlabをインストールする
#ホームディレクトリへ移動
cd /home/git
# GitLab repositoryのクローン
sudo -u git -H git clone https://github.com/gitlabhq/gitlabhq.git gitlab
# gitlab ディレクトリへ移動
cd /home/git/gitlab
# stable releaseのチェックアウト
sudo -u git -H git checkout 5-0-stable
#各種設定の編集
# GitLab configのサンプルをコピー
sudo -u git -H cp config/gitlab.yml.example config/gitlab.yml
#必要があれば、"localhost"の部分を、gitlabをホストする適切なドメイン名に変更する
#このメモではlocalhostを 192.168.1.201に変更したものとして進める
#また、 signup_enabled: true のコメントをはずして、利用者によるサインアップを有効にしておく
sudo -u git -H vim config/gitlab.yml
# GitLab が log/ と tmp/ に書き込みできるようにする
sudo chown -R git log/
sudo chown -R git tmp/
sudo chmod -R u+rwX log/
sudo chmod -R u+rwX tmp/
# satellites のためのディレクトリを作成。##サテライトってなんじゃろ
sudo -u git -H mkdir /home/git/gitlab-satellites
# pidsディレクトリを作成し、 gitユーザが書き込みできるようにする
sudo -u git -H mkdir tmp/pids/
sudo chmod -R u+rwX tmp/pids/
# Unicorn configファイルのコピー
sudo -u git -H cp config/unicorn.rb.example config/unicorn.rb
#GitLab のDB設定を編集する
##production の username/passwordを編集
#username:gitlab password:に自分で設定したパスワードを入力
sudo -u git cp config/database.yml.mysql config/database.yml
sudo -u git vim config/database.yml
#Gemのインストール
cd /home/git/gitlab
sudo gem install charlock_holmes --version '0.6.9'
sudo -u git -H bundle install --deployment --without development test postgres
#データベースの初期化処理 データベースの中身を初期化して良いかきかれるのでyes
sudo -u git -H bundle exec rake gitlab:setup RAILS_ENV=production
#Init Scriptのインストール
#init scriptのダウンロード (will be /etc/init.d/gitlab):
sudo curl --output /etc/init.d/gitlab https://raw.github.com/gitlabhq/gitlab-recipes/5-0-stable/init.d/gitlab
sudo chmod +x /etc/init.d/gitlab
#GitLab が、起動時に立ち上がるようにする
sudo update-rc.d gitlab defaults 21
#Application のステータスを確認
##想定通りに設定されてるか確認。
sudo -u git -H bundle exec rake gitlab:env:info RAILS_ENV=production
##緑色でyesとかnoとか書かれていることを確認。
sudo -u git -H bundle exec rake gitlab:check RAILS_ENV=production
#GitLab サービスを開始
sudo service gitlab start
7. Nginx
#インストール
sudo apt-get install nginx
#サイト用の設定
#設定ファイルサンプルのダウンロード:
# **YOUR_SERVER_IP** と **YOUR_SERVER_FQDN** をgitlab用に設定した適切なドメイン名、IPメールアドレスに変更する。
##このメモでは 192.168.1.201 とする
#server_name YOUR_SERVER_FQDN;の部分はIPでのアクセスのためコメントにした
sudo curl --output /etc/nginx/sites-available/gitlab https://raw.github.com/gitlabhq/gitlab-recipes/5-0-stable/nginx/gitlab
sudo ln -s /etc/nginx/sites-available/gitlab /etc/nginx/sites-enabled/gitlab
sudo vim /etc/nginx/sites-available/gitlab
#Restart
sudo service nginx restart
#おわり!
#gitlabには下記のメールアドレス、パスでログインできるよ!
[email protected]
5iveL!fe
#パスワードを覚えやすい奴に変更
ユーザの追加
追加したユーザでログイン
テスト用プロジェクトの追加
#SSHキーの登録
SourceTreeを利用している場合
下記を参考に。
http://qiita.com/items/60a9dc5a32ed1562fec2
github for windowsを利用している場合
sshのキーペアを作成
作成方法は下記を参考に。(github for windowsでgitをインストールした場合)
https://help.github.com/articles/generating-ssh-keys
※バックアップをとってから実行すること!
cd ~/.ssh
ssh-keygen -t rsa -C "[email protected] "
エンター連打でよきにはからってもらう
id_rsaのファイル名の鍵がある場合は別名で鍵を作成すること。上書きしないように注意。
sshのconfigファイルに下記のように、ホストとそれに紐付く情報を内容を設定しておく。
設定しておかないとパスワードを毎回きかれる?
Hostの部分はドメイン名でのアクセスならドメイン名にする?環境を作ってないのでわかんない。
Host 192.168.1.201
HostName 192.168.1.201
IdentityFile ~/.ssh/gitlab2nd
公開鍵をgitlabに登録
作成した鍵の.pubをテキストエディタで開いてgitlabに登録。
MyProfile > SSH Keys > Add new
Titleには覚えやすいラベルを設定
適当な環境からcloneとかpushを実行。
できた! > おつかれさまでした!
できない!> ぐぐれ