Ubuntu/Hubot/Jenkins/GitBucket で、ひっそりDevOps、ChatOps

**未完です。**

Windows 8.1上の、VMWareにUbuntu Serverをインストールしていろいろやっていく備忘録です。

最終的には、完全オンプレなDevOps、ChatOps環境にしたい。

# 環境

- Ubuntu Server 
- Hubot
- Jenkins
- GitBucket



# Ubuntu serverのインストール
- [Ubuntu Server | Ubuntu](http://www.ubuntu.com/download/server/)

## nodebrewのインストール

````zsh
$ wget git.io/nodebrew
$ perl nodebrew setup
$ export PATH=$HOME/.nodebrew/current/bin:$PATH
$ nodebrew ls-remote
$ nodebrew install-binary v0.11.13
$ nodebrew use v0.11.13
```

## Hubotのインストール

```zsh
$ npm install -g hubot coffee-script
```

### add-apt-repository コマンドのインストール

```zsh
$ sudo apt-get install software-properties-common
```

### Redisのインストール

```zsh
$ sudo add-apt-repository ppa:chris-lea/redis-server
$ sudo apt-get update
$ sudo apt-get install redis-server
```

### Yeoman インストール、Hubot作成

```zsh
$ npm install -g yo generator-hubot
$ mkdir -p myhubot
$ cd myhubot
$ yo hubot
```

### Hubotの動作確認

```zsh
$ ./bin/hubot
Hubot> hubot help
Hubot> hubot ping
```
![help.png](https://qiita-image-store.s3.amazonaws.com/0/32256/4a593e41-d44c-c0eb-16e0-10dafde4e14d.png)

![pong.png](https://qiita-image-store.s3.amazonaws.com/0/32256/f075c40c-060c-8cde-fabb-dff295416c7d.png)


# Jenkinsの環境構築

## Java 7のインストール

```zsh
$ sudo add-apt-repository ppa:webupd8team/java
$ sudo apt-get update
$ sudo apt-get install oracle-java7-installer
$ sudo update-alternatives --config java
```

# Jenkinsのインストール

```zsh
$ wget -q -O - http://pkg.jenkins-ci.org/debian/jenkins-ci.org.key | sudo apt-key add -
$ sudo sh -c 'echo deb http://pkg.jenkins-ci.org/debian binary/ > /etc/apt/sources.list.d/jenkins.list'
$ sudo apt-get update
$ sudo apt-get install jenkins
$ sudo service jenkins start
```

ここまでで、Jenkinsのサービスを起動させることはできた。
つぎはブラウザで動作確認したい。

# Ubuntu をGUI環境にする

```zsh
# ↓20分くらいかかった
$ apt-get install ubuntu-desktop
$ startx
```

`startx`して起動したGUI画面は、メニューも何も表示されていませんでした。
以下の操作で、解決。

## メニューが表示されていないUbuntuの操作

1. `Ctrl+Alt+F1` コンソール画面に移行
2. `Ctrl+Alt+Del` 再起動

無事、起動。

![ubuntu.png](https://qiita-image-store.s3.amazonaws.com/0/32256/b8260786-c244-d0f4-6550-b9f3a7064d3b.png)

<a href="http://m12i.hatenablog.com/entry/2014/05/24/100539" target="blank">Ubuntu 14.04でログイン後ランチャーもツールバーも表示されない問題の復旧 - M12i.</a>

## Jenkinsの動作確認

- Firefox起動
- `http://localhost:8080/`に移動
- Jenkins起動確認

![ubu-jenkins.png](https://qiita-image-store.s3.amazonaws.com/0/32256/db13cbbf-4e56-8d8f-ad4c-c78b613ffb53.png)

## GUIからターミナルの起動方法

1. 左上のUbuntuアイコンクリック
2. 検索ボックスに「Termin」くらいまで打つとでてきます
3. 起動後は、Terminalアイコンを`Lock to Launcher`しておくと捗りそうです

![term1.png](https://qiita-image-store.s3.amazonaws.com/0/32256/a9f2d7e6-67fe-1a2b-c56d-7c770219ec82.png)

![term2.png](https://qiita-image-store.s3.amazonaws.com/0/32256/c2232af0-1365-abb2-e301-c62c961d77a3.png)

![term3.png](https://qiita-image-store.s3.amazonaws.com/0/32256/68ba1bb4-19bc-5443-9bd2-8e934d416d34.png)


# GitBucketの環境構築

## Jettyのインストール

```zsh
$ wget http://download.eclipse.org/jetty/stable-9/dist/jetty-distribution-9.2.7.v20150116.tar.gz
$ tar zxvf jetty-distribution-9.2.7.v20150116.tar.gz
$ sudo mv jetty-distribution-9.2.1.v20140609 /opt/jetty
# 不要ならtarballを削除
$ rm jetty-distribution-9.2.7.v20150116.tar.gz
```

jettyの最新安定版は、<a href="http://download.eclipse.org/jetty/" target="blank">Eclipse Jetty Downloads</a>で適宜確認。

# GitBucketをJettyにデプロイ

```zsh
$ wget https://github.com/takezoe/gitbucket/releases/download/2.4.1/gitbucket.war
$ sudo cp ~/gitbucket.war /opt/jetty/webapps/
$ sudo ln -s /opt/jetty/bin/jetty.sh /etc/init.d/jetty
```
## Jetty用の環境設定ファイルの作成

1. `cd /opt/default`
2. `vi jetty`
3. 以下を入力

```bash:/opt/default/jetty
JAVA_HOME=/usr/lib/jvm/java-7-oracle
NO_START=0 # Start on boot
JETTY_HOST=127.0.0.1
JETTY_ARGS=jetty.port=8081 # Jenkinsと衝突しないようにしてます
JETTY_HOME=/opt/jetty
```

`:wq`したら、**書き込み権限がありません**エラーが出ました。
`:w !sudo tee %`で回避できました。

- <a href="http://jsapachehtml.hatenablog.com/entry/2014/11/23/124350" target="blank">書き込み権限のないユーザでファイルを編集してしまったとき Can't open file for writing - MEMOcho-</a>

# Jettyを起動してGitBucketを表示

```zsh
$ sudo service jetty start
```
※`$HOME`に戻っていないとコマンドが失敗しました。

- Firefoxで`http://localhost:8081/`を開く
- エラーが出た。表示されているリンクを押す。
- GitBucketのホームが表示される

![git-err.png](https://qiita-image-store.s3.amazonaws.com/0/32256/640b1364-09cf-6bec-b4d7-db78cccb2819.png)

![git-ok.png](https://qiita-image-store.s3.amazonaws.com/0/32256/2619bb70-e19b-94f9-82c4-6d6d883e429e.png)

## 8080ポートでJenkins、8081ポートでGitBucketが動作している様子

![jen-git.png](https://qiita-image-store.s3.amazonaws.com/0/32256/10041a20-2eff-4b47-19da-71583f19a320.png)


# GitBucketにプッシュ

あとでかく。。。

# GitBucketとJenkinsの連携

あとでかく。。。

# JenkinsとHubotの連携

あとでかく。。。

# チャットアプリからJenkinsのジョブを実行

あとでかく。。。

# 参考URL

- <a href="http://www.atmarkit.co.jp/ait/articles/1408/20/news035.html" target="blank">チャットボットでチーム開発効率化入門（1）：GitHub製フレームワークHubotの概要とインストール、チャットアプリと連携する基本的な使い方 (1/2) - ＠IT</a>
- <a href="http://www.atmarkit.co.jp/ait/articles/1412/12/news030.html" target="blank">チャットボットでチーム開発効率化入門（3）：HubotとJenkins、GitBucketを連携してCIをチャット上で効率化するには (1/3) - ＠IT</a>