投稿

5月, 2015の投稿を表示しています

RedmineとGitLabの連携。PushでチケットのStatusを変更

イメージ
RedmineとGitLabのプロジェクトを連携させたときの覚書。 環境: CentOS 6.6, Redmine 3.0.3, GitLab 7.10.4   目次 RedmineのプロジェクトにGitのリポジトリを指定 GitLabの「Redmine issue tracker」を有効 GitLabにWeb hooksを設定してPushと同時にRedmineへ通知 「匿名ユーザー」になるのを調査 「redmine_github_hook」プラグインをインストール 原因はTortoiseGitの設定   1.RedmineのプロジェクトにGitのリポジトリを指定 GitLabは内部でBareリポジトリとして管理しているので、このパスを指定するだけ。 Redmine → (プロジェクト) → 設定 → リポジトリ → 新しいリポジトリ リポジトリのパスは /var/opt/gitlab/git-data/repositories/suganuma/hoge-web.git のような感じ。 登録後は「リポジトリ」で履歴を参照できる。   2.GitLabの「Redmine issue tracker」を有効 公式Wikiを参考に。 External issue tracker · gitlabhq/gitlabhq GitLabにrootでログイン後、 Admin area → Service Templates → Redmine Active: Check Description: Redmine issue tracker Project url: http://dev.hoge.jp/projects/[project_id] Issues url: http://dev.hoge.jp/issues/:id New issue url: http://dev.hoge.jp/projects/[project_id]/issues/new あとは各プロジェクトのSettings → Services → Redmineで[project_id]を置き換える。 これでコミットログに「#123」とチケット番号を書くとGitLabからRedmineへ自動リンクが生成される。   3.GitLab

既存のディレクトリ(フォルダ)にgit cloneして上書きしたい

イメージ
SubversionのリポジトリをGitLabに移行後、今まで開発していたフォルダでgit cloneしてみるとエラー。 fatal: destination path 'api' already exists and is not an empty directory. 環境: CentOS 6.6, git 1.7.1   一旦フォルダごと削除して、git cloneし直せばいいのだけれど、権限の設定や本番環境でも削除してgit cloneはやりたくない。 gitの仕組みを理解すれば簡単なことだった。 腑に落ちるまで時間がかかった。 git fetchの理解からgit mergeとpullの役割 - Qiita   <2015/07/06 Modified> 実機コンソールでコマンド実行すること。Windowsから共有ファイル経由で実行すると時間が掛かり過ぎる(失敗する)。 本番環境でブランチとマージしたときに実行したコマンド # cd /path/to/project/ # git init # git remote add origin git@gitlab.hoge.jp:suganuma/project-wordpress.git # git fetch origin # git checkout -b branch-name # git checkout origin/branch-name -- .gitignore # git add --all # git add -f wp-config.php # git merge origin/branch-name エラーになったらブランチ上のファイルで上書き。移行した直後ならこれをやらなくてもいいはず。 # git checkout origin/branch-name -- /path/to/file # git merge origin/branch-name svnとお別れする # rm -rf .svn/ < 2016/03/31 追加 > 上のやり方でマージできなかったので「theirs」を使った方法 途中までは一緒 # cd /path/to/project/ # git init # git remote a

SubversionからGit(GitLab)へ移行

イメージ
メインの開発はGitに移行したときの覚書。 一つのsvnリポジトリでドキュメント、Web・アプリ用のソースコードを管理していたので、コードの部分だけGitに移行してドキュメントはSubversionに残す。 目標は GitHub Flow の実現。 クライアント環境: Windows 8.1 x64, Git-1.9.5-preview20150319, TortoiseGit-1.8.14.0-64bit サーバー環境: CentOS 6.6, Ruby 2.2.2, Git 2.4.1, GitLab 7.10.4   参考 Git - Git への移行 仕事で使ってる巨大SVNレポジトリをGithubに移管するためにやったことまとめ - DQNEO起業日記   目次 移行しやすいようにsvnリポジトリのディレクトリ構成を変える GitLabに移行先プロジェクト作成 svnユーザーとgitユーザーのマッピングファイルを作る Subversionリポジトリから変換(git svn clone) Subversionリポジトリから変換(svn2git) GitLabにPush     1.移行しやすいようにsvnリポジトリのディレクトリ構成を変える 1つのリポジトリでドキュメント、ウェブ、アプリを管理していたので、ブランチも多階層になってた。 「git svn init --ignore-paths="(/hoge)"」などで頑張ったけど、うまい正規表現が書けなかったので、ウェブとアプリでsvnリポジトリを分けて、git svnしやすいリポジトリに変更することにした。 まずは元のリポジトリをコピー # cd /home/svn/Repositories/ # svnadmin hotcopy hoge_project/ hoge_project_web --clean-logs # chown apache. -R hoge_project_web/ あとはTortoiseSVNのリポジトリブラウザで削除したりコピーしたりする。   2.GitLabに移行先プロジェクト作成 GitLabでプロジェクトを新規作成しておく。 GitLabのインストールは前の記事を参考に。 SE奮闘

WindowsにGitの環境を構築(msysGit + TortoiseGit)してGitLabにPush

イメージ
WindowsにGitの環境を構築して、GitLabにPushするまでの覚書。 環境: Windows8.1 x64   目次 msysGit(Git for Windows)をインストール TortoiseGitをインストール 公開鍵を生成してGitLabに登録 TortoiseGitでCloneしてPushしてみる   1.msysGit(Git for Windows)をインストール Gitの公式サイト か msysGitのページ からダウンロードする。どちらも同じ。歴史的な理由で「msysGit」となっているだけ。 Git for Windows What is msysGit, what is Git for Windows · msysgit/msysgit Wiki インストール時に選択した項目 Use Git from Git Bash only Checkout as-is, commit as-is   2.TortoiseGitをインストール 公式サイトからダウンロード。 tortoisegit - Windows Shell Interface to Git - Google Project Hosting   3.公開鍵を生成してGitLabに登録 Windowsキーを押して「puttygen」と入力するとTortoiseGitと一緒にインストールされた「Putty Key Generator」が出てくる。 「Generate」→ (パスフレーズなしで)「Save private key」 GitLabへログイン後、Profile → SSH Keys → Add SSH Key 登録するとgitユーザーのホームディレクトリになっている /var/opt/gitlab/ に .ssh/authorized_keys が作られる。 これでgitユーザーでSSHログインが可能になった。   4.TortoiseGitでCloneしてPushしてみる GitLabにテスト用「hello-world」プロジェクトを作成。 Windowsエクスプローラーの適当なフォルダで右クリック → Git Clone... GitLabに表示されているSSHアドレスをURLに

RedmineとGitLabにGoogle Appsアカウントでログイン

イメージ
GitLabを導入してRedmineのアカウントと連携するために、両方Google Appsのアカウントでログイン出来るように設定したときの覚書。 環境: CentOS 6.6, Redmine 3.0.3, GitLab 7.10.4   目次 Redmineにプラグインをインストール GitLabで「omniauth」を有効にする   1.Redmineにプラグインをインストール プラグインのサイトにしたがってインストールと設定。 twinslash/redmine_omniauth_google | GitHub こちらは古いのでRedmine 3.0に対応しているのを使う yamamanx/redmine_omniauth_google | GitHub # cd /opt/redmine/plugins # git clone https://github.com/yamamanx/redmine_omniauth_google.git # cd ../ # bundle install --without development test 再起動 # /etc/rc.d/init.d/redmine restart 管理者でログインして プラグイン → Redmine Omniauth Google plugin で Google Developers Console で取得した値を入れる。 Available domains: (ログイン制限したいドメイン) Oauth authentification: (チェック) これでGoogle Appsにログインした状態でログイン画面の「Login via Google」ボタンをクリックすると認証後にログインする。 すでにメールアドレスが登録されていればそのユーザーでログインする。   2.GitLabで「omniauth」を有効にする GitLabは設定ファイルを編集すればいい。詳しくは前の記事を参考に。 SE奮闘記: CentOSにGitLabをInstallして設定   < Related Posts > CentOSにGitLabをInstallして設定 CentOS6にRedmine 3.0をInstallして2.5か

CentOSにGitLabをInstallして設定

イメージ
前回 と 前々回 でRedmineのインストールまで出来たので、今回はGitLabをインストール。 環境: CentOS 6.6 x86_64, Ruby 2.2.2, Git 2.4.1, GitLab 7.10.4   目次 GitLabのインストール 設定:接続URLを変更 設定:Google Appsアカウントでログイン出来るようにする(omniauth) 設定: MariaDBを使う 。GitLab付属のPostgreSQLを使う 設定:メール送信はGoogle Appsアカウント経由にする 設定:GitLab付属のUnicornを使う 設定:GitLab付属のRedisを使う 既存のNginxからプロキシする GitLab再設定、起動   1.GitLabのインストール 公式ページを参考に。 Download GitLab Community Edition (CE) | GitLab 必要なパッケージのインストール # yum install openssh-server postfix cronie 全てインストール済み。postfixも起動している状態。 GitLabのレポジトリを追加 # curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | bash YUM経由でインストール # yum install gitlab-ce 設定 # gitlab-ctl reconfigure エラー [2015-05-14T18:40:00+09:00] ERROR: Running exception handlers Running handlers complete [2015-05-14T18:40:00+09:00] ERROR: Exception handlers complete [2015-05-14T18:40:00+09:00] FATAL: Stacktrace dumped to /opt/gitlab/embedded/cookbooks/cache/chef-stacktrace.out Chef Client failed. 81 resources u

CentOS6にRedmine 3.0をInstallして2.5から移行

イメージ
前回 GitとRubyをインストールしたので、今回はRedmineをセットアップ。 環境: CentOS 6.6 x86_64, Ruby 2.2.2, Git 2.4.1   目次 Redmineのインストールに必要なパッケージのインストール Redmineのインストール 初期設定 Railsサーバー「unicorn」のインストール nginxにリバースプロキシの設定 データの移行   1.Redmineのインストールに必要なパッケージのインストール 公式サイトを参考に。 Redmine 3.0をCentOS 7.0にインストールする手順 | Redmine.JP Blog ImageMagickをインストール # yum install ImageMagick ImageMagick-devel ipa-pgothic-fonts Rubyのbundlerをインストール # gem install bundler --no-rdoc --no-ri MariaDBはインストール済み。デフォルトのcharacter_setは「utf8mb4」 「redmine」(utf8_general_ci)データベースと接続ユーザーを作っておく。   2.Redmineのインストール これも 公式サイト を参考に。前にRedmine 2.5.2をインストールした記事も参考に。 SE奮闘記: CentOS6にRedmine2.5をInstallして2.4から移行 # cd /opt # curl -O http://www.redmine.org/releases/redmine-3.0.3.tar.gz # tar -xzvf redmine-3.0.3.tar.gz # mv redmine-3.0.3 redmine # cd redmine データベースへの接続設定 # vi config/database.yml production:   adapter: mysql2   database: redmine   host: localhost   username: redmine   password: pass   encoding: utf8 Gemパッケージのインストール # bundle

GitをSourceからBuildしてRubyの最新版をInstall

イメージ
Git → Ruby → Redmine → GitLabとインストールしたときの覚書。今回はRubyのインストールまで。 環境: CentOS 6.6 x86_64 目次 Gitをインストール rbenv + ruby-buildをインストール Rubyをインストール   1.Gitをインストール yumでインストールしようと思ったけど、後々 GitLab をインストールしたいので GitLabの動作条件 を確認するとGit 1.7.10+。yumにあるのは1.7.1だったので最新バージョンをビルドすることにした。 Installing from Source | Git - Installing Git 公式サイトの通りにインストール。 # yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel # curl -O https://www.kernel.org/pub/software/scm/git/git-2.4.1.tar.gz # tar -xzvf git-2.4.1.tar.gz # cd git-2.4.1 # make configure /usrにインストール。 # ./configure --prefix=/usr # make all エラー /usr/bin/perl Makefile.PL PREFIX='/usr' INSTALL_BASE='' --localedir='/usr/share/locale' Can't locate ExtUtils/MakeMaker.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at Makefile.PL line 3. BEGIN failed--compilation aborted at Makefile.PL lin

既存のWordPressサイトをGoogle App Engineに移行

イメージ
WordPressで作ったホームページを Google App Engine に移行したときの覚書。サイトはこちら。 Japan Karate Association | Singapore Branch スケジュールはGoogle カレンダーを使ってるし、写真はFacebookページのアルバムを表示しているので、管理画面にログインして何か作業をする必要はない(記事、画像をアップロードしない)。 運用してみて月額1000円以上かかるなら、おとなしくVPSを借りる予定。 環境: Windows 8.1 x64, WordPress 4.2.2 参考サイト Quick Start WordPress for Google App Engine by GoogleCloudPlatform PHP Runtime Environment - PHP | Google Cloud Platform   目次 Google Cloud SDKをインストール Google Developers Consoleでプロジェクト作成 Google Cloud SQLにインスタンスを作成 WordPress用のテンプレートをダウンロードして上書き デプロイ phpMyAdminをインストール カスタムドメインの設定 管理画面にアクセス。GAE用のプラグインを導入。 キャッシュの設定 費用面などを考慮して今後もGAEを使うか   1.Google Cloud SDKをインストール 公式サイトからダウンロード、インストール。 Cloud SDK | Google Cloud Platform Python 2.7.6 64bitもインストールされた。 Google Cloud SDK Shellを起動。 サインイン > gcloud auth login ブラウザで認証完了。 PHP用App Engineパッケージをインストール(更新)。 > gcloud components update gae-python All components are up to date.     2.Google Developers Consoleでプロジェクト作成 Google Developers C

CentOS7を最小構成からセットアップ

イメージ
開発用にCentOS7を最小構成から設定したときの覚書。今まで使ってたコマンドが使えなくなって戸惑った。 環境:CentOS 7.1.1503 目次 ホスト名変更 ファイヤーウォール設定 時刻同期 SELinuxを無効 sambaをインストールしてファイル共有 YUMにREMIリポジトリを追加する その他開発環境を整える 1.ホスト名変更 # vi /etc/hostname < 2019/01/19 追記> CentOS7ではhostnamectlを使うのが正攻法。 # hostnamectl -h # hostnamectl status # hostnamectl set-hostname hoge.dksg.co.jp 2.ファイヤーウォール設定 デフォルトでfirewalldというサービスになったみたい。でも、iptablesが慣れているのでYUM経由でインストールする # yum install iptables-services firewalldを停止してiptables.servicesを使う。自動起動はenableすればいい。 # systemctl stop firewalld # systemctl disable firewalld # systemctl start iptables # systemctl enable iptables 80番(http)と443番(https)を開ける # vi /etc/sysconfig/iptables # sample configuration for iptables service # you can edit this manually or use system-config-firewall # please do not ask us to add additional ports/services to this default configuration *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A INP