<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>bundlerr - BLACKND</title>
	<atom:link href="https://blacknd.com/tag/bundlerr/feed/" rel="self" type="application/rss+xml" />
	<link>https://blacknd.com</link>
	<description>エンジニアがオススメするPCライフハック術</description>
	<lastBuildDate>Wed, 18 May 2022 07:46:52 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.8.3</generator>

<image>
	<url>https://blacknd.com/wp-content/uploads/2021/04/logo-mark-6-100x100.png</url>
	<title>bundlerr - BLACKND</title>
	<link>https://blacknd.com</link>
	<width>32</width>
	<height>32</height>
</image> 
<atom:link rel="hub" href="https://pubsubhubbub.appspot.com"/><atom:link rel="hub" href="https://pubsubhubbub.superfeedr.com"/><atom:link rel="hub" href="https://websubhub.com/hub"/>	<item>
		<title>CentOS 6にLAMP, Git, Redmine, phpMyAdminな開発サーバを一発構築するスクリプト</title>
		<link>https://blacknd.com/develop-wordpress/centos-development-server-bootstrap-script/</link>
					<comments>https://blacknd.com/develop-wordpress/centos-development-server-bootstrap-script/#respond</comments>
		
		<dc:creator><![CDATA[りゅう]]></dc:creator>
		<pubDate>Mon, 14 Oct 2013 22:14:42 +0000</pubDate>
				<category><![CDATA[開発・WordPress]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[公開鍵]]></category>
		<category><![CDATA[bundle]]></category>
		<category><![CDATA[秘密鍵]]></category>
		<category><![CDATA[CentOS]]></category>
		<category><![CDATA[bundlerr]]></category>
		<category><![CDATA[鍵認証]]></category>
		<category><![CDATA[開発サーバ]]></category>
		<category><![CDATA[Passenger]]></category>
		<category><![CDATA[NetBeans]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[Git]]></category>
		<category><![CDATA[vim]]></category>
		<category><![CDATA[シェルスクリプト]]></category>
		<category><![CDATA[dotfiles]]></category>
		<category><![CDATA[自動化]]></category>
		<category><![CDATA[github]]></category>
		<category><![CDATA[LAMP]]></category>
		<category><![CDATA[VirtualBox]]></category>
		<category><![CDATA[phpMyAdmin]]></category>
		<category><![CDATA[仮想マシン]]></category>
		<category><![CDATA[Redmine]]></category>
		<category><![CDATA[SSH]]></category>
		<guid isPermaLink="false">https://blacknd.com/?p=206</guid>

					<description><![CDATA[<p><img src="https://blacknd.com/wp-content/uploads/2013/10/centos-development-server-bootstrap-script-1024x576.jpg" class="webfeedsFeaturedVisual" /></p>CentOS 6の開発環境を一発で構築するスクリプトを公開しました。NetBeansやRedmineも紹介します。 GitHubのリポジトリ https://github.com/ryu-blacknd/bootstra [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><img src="https://blacknd.com/wp-content/uploads/2013/10/centos-development-server-bootstrap-script-1024x576.jpg" class="webfeedsFeaturedVisual" /></p>
<p>CentOS 6の開発環境を一発で構築するスクリプトを公開しました。NetBeansやRedmineも紹介します。</p>



<h2 class="wp-block-heading">GitHubのリポジトリ</h2>



<p>https://github.com/ryu-blacknd/bootstrap</p>


<div class="swell-block-balloon"><div class="c-balloon -bln-left" data-col="gray"><div class="c-balloon__icon -circle"><img decoding="async" loading="lazy" src="https://blacknd.com/wp-content/uploads/2019/12/ryu-icon.png" alt="" class="c-balloon__iconImg" width="80px" height="80px"><span class="c-balloon__iconName">りゅう</span></div><div class="c-balloon__body -speaking -border-none"><div class="c-balloon__text">
<p>気が向いた時に更新するかもしれません。</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>


<h2 class="wp-block-heading">想定している開発フロー</h2>



<ol class="wp-block-list"><li>Redmineでプロジェクト管理</li><li>NetBeansで開発</li><li>ローカルのGitリポジトリでコミット</li><li>リモートのベアリポジトリへプッシュ(Redmineが参照するのはココ)</li><li>本番環境リポジトリ(<code>/var/www/html</code>以下)で自動プル</li></ol>



<h2 class="wp-block-heading">スクリプトの概要</h2>



<ul class="wp-block-list"><li>セキュリティ関係の設定(ローカル開発環境なので甘々に設定)</li><li>yumのリポジトリを追加(epel, remi)</li><li>yum updateと、必要なパッケージのインストール</li><li>不要なサービスの停止</li><li>LAMP環境のインストールと最低限の設定</li><li>RubyとPassenger周りのインストール</li><li>Gitユーザーの作成と関連する設定</li><li>phpMyAdminのインストール</li><li>Redmine本体、テーマ、プラグインをインストール</li><li>おまけ：ベアリポジトリ用フックスクリプトの雛形</li></ul>



<p>詳細は、シェルスクリプトを読んでみてください。たいしてトリッキーなことはしていません。</p>



<h2 class="wp-block-heading">動作環境</h2>



<ul class="wp-block-list"><li>LAN内のサーバPC、またはVirtualBox等の仮想マシン(Vagrant可)</li><li>CentOS6 x86/64 minimal isoイメージでのインストール直後であること</li></ul>



<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-0828111045403072"
     crossorigin="anonymous"></script>
<ins class="adsbygoogle"
     style="display:block; text-align:center;"
     data-ad-layout="in-article"
     data-ad-format="fluid"
     data-ad-client="ca-pub-0828111045403072"
     data-ad-slot="7288081085"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script>



<h2 class="wp-block-heading">インストール</h2>



<p>rootでログインし、gitをインストール後、取得したbootstrap.shを実行するだけです。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>yum -y install git
cd
git clone https://github.com/ryu-blacknd/bootstrap.git
chmod +x bootstrap/bootstrap.sh
bootstrap/bootstrap.sh</code></pre></div>



<p>ほぼノンストップで進みますが、Passengerのインストール時のみ画面に表示される通りEnterを押して進んでください。</p>



<p><strong>※2013.10.16 追記：Passengerインストール時にEnterを自動入力することで、ノンストップになりました。</strong></p>



<p>インストール後はシステムを再起動します。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>reboot</code></pre></div>



<h2 class="wp-block-heading">開発に関する情報</h2>



<figure class="wp-block-table"><table><thead><tr><th>種別</th><th>値</th></tr></thead><tbody><tr><td>Gitユーザー</td><td><code>gituser:gituser</code></td></tr><tr><td>Gitベアリポジトリ *<strong>1</strong></td><td><code>/var/repos/[プロジェクト名]</code></td></tr><tr><td>Git公開鍵を追記するファイル *<strong>2</strong></td><td><code>/home/gituser/.ssh/authorized_keys</code></td></tr><tr><td>RedmineのURL</td><td><code>http://[ホスト名]/redmine/</code></td></tr><tr><td>Redmineユーザー</td><td><code>admin:admin</code></td></tr><tr><td>phpMyAdminのURL</td><td><code>http://[ホスト名]/phpmyadmin/</code></td></tr><tr><td>各プロジェクトのURL</td><td><code>http://[ホスト名]/[プロジェクト名]/</code></td></tr></tbody></table></figure>



<p>*<strong>1</strong> NetBeansでのプッシュ先リポジトリ&nbsp;=&nbsp;Redmineでの参照リポジトリ</p>



<p>*<strong>2</strong> 開発ユーザー毎にSSH公開鍵を作成し、このファイルに追記していく(後述)</p>



<h2 class="wp-block-heading">初回の開発フロー</h2>



<p>初回のみGit絡みで面倒ですが、以下のフローが済めば、以降は自動化され楽になります。</p>



<ol class="wp-block-list"><li>[サーバ] ユーザー<code>gituser</code>でSSHログイン</li><li>[サーバ] <code>/var/repos/[プロジェクト名]</code>を作成し、ディレクトリ内で<code>git init --bare</code></li><li>[ローカル] NetBeansでローカルのリポジトリにファーストコミット</li><li>[ローカル] NetBeansから先ほど作成したベアリポジトリにプッシュ</li><li>[ローカル] Redmineで新規プロジェクトを作成、リポジトリを設定、ユーザー割り当て</li><li>[サーバ] <code>cd /var/www/html</code>して<code>git clone /var/repos/[プロジェクト名]</code></li><li>[サーバ] <code>/var/repos/[プロジェクト名]/.git/hooks/</code>に<code>post-update</code>をコピーして編集</li></ol>



<p><code>post-update</code>ファイルはユーザー<code>root</code>のホームディレクトリにあるため、<code>gituser</code>はアクセスできません。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>chown gituser. post-update</code></pre></div>



<p>としておき、<code>gituser</code>のホームディレクトリにでもコピーしておくとよいでしょう。</p>



<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-0828111045403072"
     crossorigin="anonymous"></script>
<ins class="adsbygoogle"
     style="display:block; text-align:center;"
     data-ad-layout="in-article"
     data-ad-format="fluid"
     data-ad-client="ca-pub-0828111045403072"
     data-ad-slot="7288081085"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script>



<h2 class="wp-block-heading">post-updateのコピーと編集</h2>



<p>フックスクリプト<code>post-update</code>は、プロジェクトを作成する毎に手動でコピー、<code>****</code>の部分を編集します。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>#!/bin/sh
/usr/bin/wget -q -O /dev/null http://localhost/redmine/sys/fetch_changesets?key=****
(cd /var/www/html/**** &amp;&amp; git --git-dir=.git pull)</code></pre></div>



<p>2行目は、Redmineの 管理 → 設定 → リポジトリ で生成したAPIキーを記述します。</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="902" height="486" src="https://blacknd.com/wp-content/uploads/2013/10/2013-10-16_004148.png" alt="" class="wp-image-277" srcset="https://blacknd.com/wp-content/uploads/2013/10/2013-10-16_004148.png 902w, https://blacknd.com/wp-content/uploads/2013/10/2013-10-16_004148-300x162.png 300w, https://blacknd.com/wp-content/uploads/2013/10/2013-10-16_004148-768x414.png 768w" sizes="auto, (max-width: 902px) 100vw, 902px" /></figure>



<p>3行目は、上記手順のプロジェクト名(=リポジトリのディレクトリ名)を記述します。</p>



<p>これで冒頭に書いたようなフローの準備が整いました。</p>



<p>以後はNetBeansで、ローカルコミットとベアリポジトリへのプッシュを繰り返して開発を進めます。</p>



<h2 class="wp-block-heading">コミット・メッセージでチケットの状態を更新する</h2>



<p>NetBeansからのコミット時は、コミット・メッセージの文末に<code>refs #1 @1.5h</code>等を付与すると、Redmineのチケットと連携することができます。</p>



<p>このとき、作成者とコミッタをRedmineのユーザー名に合わせるようにしてください。</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="791" height="565" src="https://blacknd.com/wp-content/uploads/2013/10/2013-10-16_202424.png" alt="コミット・メッセージ" class="wp-image-382" srcset="https://blacknd.com/wp-content/uploads/2013/10/2013-10-16_202424.png 791w, https://blacknd.com/wp-content/uploads/2013/10/2013-10-16_202424-300x214.png 300w, https://blacknd.com/wp-content/uploads/2013/10/2013-10-16_202424-768x549.png 768w" sizes="auto, (max-width: 791px) 100vw, 791px" /></figure>



<p>上記ユーザー名がRedmine側と一致しない場合は、チケット連携が正常に行われません。その場合はプロジェクト毎の 設定 → リポジトリ から、ユーザーの関連付けを行ってください。</p>



<p>※詳しくはこちらを参照してください。</p>



<p>http://blog.redmine.jp/articles/new-feature-1_1/automatic-spent-time-logging/</p>



<h2 class="wp-block-heading">リポジトリへのアクセスにSSH鍵認証を利用する</h2>



<p>ユーザー毎のSSH公開鍵をユーザー<code>gituser</code>の<code>authorized_keys</code>に追記していきます。</p>



<p>以下の手順でSSH公開鍵と秘密鍵のペアを生成します。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>ssh-keygen -C user@example.com</code></pre></div>



<p>なお、この鍵ペアを外部サーバへの接続用途に使わないのであれば、パスフレーズは無視して構いません。</p>



<p>これでユーザーのホームディレクトリに2つの鍵ファイルが作成されます。</p>



<figure class="wp-block-table"><table><thead><tr><th>役割</th><th>ファイル名</th></tr></thead><tbody><tr><td>SSH秘密鍵</td><td><code>~/.ssh/id_rsa</code></td></tr><tr><td>SSH公開鍵</td><td><code>~/.ssh/id_rsa.pub</code></td></tr></tbody></table></figure>



<p>この公開鍵をサーバ管理者に渡し、管理者は<code>gituser</code>ユーザーで<code>~/.ssh/authorized_keys</code>に追記します。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>cd ~/.ssh
cat id_rsa.pub &gt;&gt; authorized_keys</code></pre></div>



<p>次にNetBeans側で、「秘密鍵ファイル」に上記の秘密鍵ファイルを指定すれば、リポジトリにアクセスすることができるようになります。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blacknd.com/develop-wordpress/centos-development-server-bootstrap-script/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
