バージョン管理システム、いろいろありますね。
フリーソフトウェア(オープンソース)[編集]
- GNU arch - 分散型。C言語、シェルスクリプトで実装している。
- Bazaar - 分散型。Pythonで実装している。
- CVS - 集中型。C言語で実装している。
- GNU CSSC - SCCSのクローン。もうほとんど使われていない。
- Darcs - 分散型。Haskellで実装している。
- Git - 分散型。C言語、シェルスクリプト、Perlなどで実装している。元々はLinuxのコード管理のために作られた。
- Mercurial - 分散型。Python、C言語で実装している。
- Monotone - 分散型。C++で実装している。
- RCS - Revision Control System。C言語で実装している。
- Subversion - 集中型。CVSの改良版という位置づけ。C言語で実装している。
- Veracity - 分散型。C言語とJavascriptで実装している。Apache License。
・OSSのGitサーバ4種類を主観的に比較する | 純規の暇人趣味ブログ
⇧ 上記サイト様によると、Gitを使う場合でオープンソースで良さげなものは
ということになるみたいです。
GitBucketの作者の方は日本の方のようです。
作者takezoe氏の言葉によると、GitBucketは「Github Enterpriseは高いしOSSではない、GitLabはインストールやバージョンアップがめんどくさい、という隙間を狙ったプロダクト」と位置づけられています。社内や個人用途で気軽に使うことができるGitHubクローンとしてなかなか有望そうですね。
ということで、GitBucketを導入していきたいと思います。
GitBucketの導入
⇧ 上記サイト様を参考に構築していきます。
Redmineをインストールした仮想マシンを利用していくので、
- CentOS 7.3
- Apache Httpd 2.4.27
- passenger-install-apache2-module
- Ruby 2.4.2
- MySQL 5.7.19
- mysql2
- Phusion Passenger 5.1.8
はインストール済みという前提でいきたいと思います。
インストールが超簡単で、warをダウンロードしてきて実行するだけで動作します。(warなのでTomcatに入れてもOK、いわゆるExecutable war)
また、JGitという100%Javaで実装されたGitライブラリを使用しているので、サーバ側にGitをインストールする必要がありません。
GitBucket単体という最小構成から、GitBucket+Tomcat+DB+Webサーバという良くある構成まで柔軟に調整出来ます。
ということで、GitBucketを利用するには、Javaが必須のようです。
Javaのインストール
・[CentOS7]Oracle Java8をインストール | Zero Configuration
⇧ 上記サイト様によると、
・Java - openJDKとOracle JDKの違い(84019)|teratail
⇧ によりますと、ほとんど大差はないようです。
・[Java] OracleJDKの取得方法が大きく変わりました | Developers.IO
⇧ 上記サイト様によると、Oracle JDKの過去のものの利用に関しては制限があるみたいですね。
・CentOS 7/Oracle JDKをインストールする - MonoBook
⇧ 上記サイト様によると、Oracle JDKを利用する場合はopenJDKも入れておいたほうが良いようです。
openJDKのインストール
yum search jdk sudo yum install java-1.8.0-openjdk-devel
Java SE - Downloads | Oracle Technology Network | Oracle にアクセスしたら下のほうにスクロールし、「Java SE 8u×××」の「JDK」の「DOWNLOAD」をクリック。(Java SE 9が登場してましたね)
「Accept License Agreement」にチェックを入れ、
『Linux x64』の「.rpm拡張子」のDownloadリンクの上で右クリックし、「リンクのアドレスをコピー」。
コピーしたアドレスを基に、仮想マシン内にOracle JDKダウンロード
wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u144-b01/090f390dda5b47b9b721c7dfaa008135/jdk-8u144-linux-x64.rpm
ダウンロードしたOracle JDKをyumでインストールします。
sudo yum localinstall jdk-8u144-linux-x64.rpm
CentOS7にJDKが複数あることを登録する必要がある。 rpmを入れただけで自動登録されたりはしない。 この説明を飛ばしているサイトばかりで凄い悩んだ。 優先度(末尾の17000)はなんでもいい。
ということで、
sudo alternatives --install /usr/bin/java java /usr/java/default/bin/java 17000
alternativesコマンドによってJavaVMの切り替えができるようです。
alternativesコマンドでjavaVMを、OracleJava8に変更します
sudo alternatives --config java
Javaのバージョン確認
Apache Tomcat をインストール
・CentOS7にTomcat8を構築する方法 - Qiita
⇧ 上記サイト様を参考
tomcatユーザーの作成
useradd -s /sbin/nologin tomcat
tomcatダウンロード
sudo mkdir -p /usr/local/src/tomcat sudo cd /usr/local/src/tomcat sudo curl -OL http://www-us.apache.org/dist/tomcat/tomcat-9/v9.0.1/bin/apache-tomcat-9.0.1.tar.gz
tar.gz展開&配置
sudo su tar zxvf apache-tomcat-9.0.1.tar.gz mv apache-tomcat-9.0.1 /opt/ chown -R tomcat. /opt/apache-tomcat-9.0.1
今後発生するVersion upによるパス差分をシンボリックリンクで吸収
ln -s /opt/apache-tomcat-9.0.1 /opt/tomcat
Windowsの方が得意な人は、ショートカットみたいなものだと思ってください。このショートカット(と似たような役目のファイル)のUNIX系OS(LinuxとかMacとか)における呼び名が「シンボリックリンク」です。
シンボリックリンク (symbolic link)とは|「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典
パスを通す
echo 'export CATALINA_HOME=/opt/tomcat' > /etc/profile.d/tomcat.sh source /etc/profile.d/tomcat.sh
初期設定
サービス定義ファイルを作成
vim /etc/systemd/system/tomcat.service
/etc/systemd/system/tomcat.service
[Unit] Description=Apache Tomcat 8 After=syslog.target network.target [Service] User=tomcat Group=tomcat Type=oneshot PIDFile=/opt/tomcat/tomcat.pid RemainAfterExit=yes ExecStart=/opt/tomcat/bin/startup.sh ExecStop=/opt/tomcat/bin/shutdown.sh ExecReStart=/opt/tomcat/bin/shutdown.sh;/opt/tomcat/bin/startup.sh [Install] WantedBy=multi-user.target
権限付与
chmod 755 /etc/systemd/system/tomcat.service
GitBucketダウンロード
GitHub - gitbucket/gitbucket: A Git platform powered by Scala with easy installation, high extensibility & GitHub API compatibility にアクセス。「the release page」のリンクをクリック。
「gitbucket.war」の上で右クリックし、「リンクのアドレスをコピー(E)」。
GitBucketをTomcatのデフォルトアプリケーション配置フォルダへ、ダウンロードします。gitbacket.warとして配置されたので、Tomcatが起動すればWarファイルが展開されます。
cd /opt/apache-tomcat-9.0.1/webapps wget https://github.com/gitbucket/gitbucket/releases/download/4.17.0/gitbucket.war -O gitbucket.war
Apache HttpdとApache Tomcatの連携
・Apache httpd と Tomcat を連携させる方法 | WEB ARCH LABO
・Apache2.4.6とTomcat8.0.32の連携設定 - bnote
・Apache 2.4 で リバースプロキシの設定 - Qiita
Nginxのときは、リバースプロキシでTomcatと連携してたんですが、Apached Httpdの場合、「mod_proxy_ajp.so」を使ってる人がいたり「mod_proxy_http.so」を使ってる人がいたりでどうすれば?
・mod_proxy_httpとmod_proxy_ajpとmod_jk — ありえるえりあ
⇧ 上記サイト様によると、 どっちもそんなに変わらないとのこと。
⇩ Tomcat 9 から HTTP2.0 対応できるみたいですね
・で、 HTTP2.0 対応って何をすればいいの? - dskst's diary
・Tomcat 9 を HTTP/2 サーバーにする – 1Q77
AJP (Apache JServ Protocol) というプロトコルで連携していきたいと思います。
ps ax | grep httpd
設定ファイルを編集します。
vim /usr/local/apache2/conf/httpd.conf
「LoadModule proxy_module modules/mod_proxy.so 」
「LoadModule proxy_ajp_module modules/mod_proxy_ajp.so」
のコメントアウトを外し有効化。
「/usr/local/apache2/conf.d/tomcat.conf 」を作成し、プロキシーパスを設定。
vim /usr/local/apache2/conf.d/tomcat.conf
下記記述。
<Location /gitbucket> ProxyPass ajp://localhost:8009/gitbucket </Location>
Apache HttpdとApache Tomcatを再起動します。
systemctl restart httpd systemctl restart tomcat
ブラウザで『http://仮想マシンのIPアドレス/gitbucket/』にアクセス。
GitBucketが表示されました。 「Sign in」でログインします。「初期アカウント」は「Username」=「root」、「Password」=「root」でログインできます。
ログインしたら、右上の「Accout settings」で「root」ユーザーのパスワードとか変更できます。
「Password(input to change password):」に新しいパスワードを入力し、「Save」。
更新されました。
『http://仮想マシンのIPアドレス/redmine/』にアクセスすると、
Redmineが表示されました。
次回は、 RedmineとBitBucketの連携に取り組んでいきたいと思います。
今回はこのへんで。
http://www.publickey1.jp/blog/18/kubernetesdockerdocker_for_mac_with_kubernetes.html