投稿

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/gitlabhqGitLabにrootでログイン後、
Admin area → Service Templates → RedmineActive: 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にWeb hooksを設定してPushと同時にRedmineへ通知GitLabにPushするとRedmineのチケットと…

既存のディレクトリ(フォルダ)に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-namesvnとお別れする
# rm -rf .svn/< 2016/03/31 追加 >
上のやり方でマージできなかったので「theirs」を使った方法 途中までは一緒
# cd /path/to/project/
# git init
# git remote add origin git@gitlab.hoge.jp:suganuma/project-wordp…

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にPush1.移行しやすいように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奮闘記: CentOSにGitLabをInstallして設定3.svnユーザーとgitユーザーのマッピングファイルを作るユーザー…

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 WindowsWhat is msysGit, what is Git for Windows · msysgit/msysgit Wikiインストール時に選択した項目Use Git from Git Bash only Checkout as-is, commit as-is2.TortoiseGitをインストール公式サイトからダウンロード。tortoisegit - Windows Shell Interface to Git - Google Project Hosting3.公開鍵を生成して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に入力。「Load Putty Key」に先ほど生成したSSHプライベートキーを指定。Clone完了。「README.mb」を作ってCommit → Push…

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 | bashYUM経由でインストール
# 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 updated in 23.560077797 seconds
[2015-05-14T18:40:00…

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 BlogImageMagickをインストール
# yum install ImageMagick ImageMagick-devel ipa-pgothic-fontsRubyのbundlerをインストール
# gem install bundler --no-rdoc --no-riMariaDBはインストール済み。デフォルトの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.ymlproduction:
  adapter: mysql2
  database: redmine
  host: localhost
  username: redmine
  password: pass
  encoding: utf8Gemパッケージのインストール
# bundle install --without development test --path vendor/bundleエラーAn error …

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 line 3.
make[1]: *** [perl.mak] エラー 2
make: ***…

既存の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 GoogleCloudPlatformPHP 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 PlatformPython 2.7.6 64bitもインストールされた。Google Cloud SDK Shellを起動。サインイン
> gcloud auth loginブラウザで認証完了。PHP用App Engineパッケージをインストール(更新)。
> gcloud components update gae-pythonAll components are up to date.2.Google Developers Consoleでプロジェクト作成Google Developers Consoleにアクセスして「プロジェクト作成」プロジェクト作成後、プロジェクトの概要へ自動で遷移する。3.Google Cloud…

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-servicesfirewalldを停止してiptables.servicesを使う。自動起動はenableすればいい。
# systemctl stop firewalld
# systemctl disable firewalld
# systemctl start iptables
# systemctl enable iptables80番(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 INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A…