概要
droneはGo言語で書かれたCI・CDツールでJenkinsみたいなやつです
今回はニフティクラウド上のCentOSで動作するか試してみました
環境準備
- CentOS 6.4 64bit
- docker 1.1.2
- drone 0.3-v
- golang 1.3.3
インストール
各種インストールしていきます
GLIBC2.14のインストール
droneの動作にはGLIBCの2.14が必要になります
yumでインストールできるGLIBCのバージョンが2.12でダメなので公式のソースを持ってきてソースインストールします
makeでのビルド時間が非常に長いです
yum -y groupinstall "Development Tools"
wget http://ftp.gnu.org/gnu/glibc/glibc-2.14.1.tar.gz
tar zvxf glibc-2.14.1.tar.gz
mkdir build
cd build
../configure --prefix=/usr/glibc
make
make install
cd /usr/glibc/lib/
cp libc-2.14.1.so /lib64/
ln -nfs libc-2.14.1.so libc.so.6
ldconfig
で以下のような感じになっていればOKです
[root@localhost lib64]# pwd
/lib64
[root@localhost lib64]# ls -l libc.so.6
lrwxrwxrwx 1 root root 14 Oct 20 00:22 libc.so.6 -> libc-2.14.1.so
dockerのインストール
rpm -Uvh http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
yum -y install docker-io
インストールが完了したらservice docker start
でもして起動できることを確認してください
yum install
時に以下のようなエラーが出る場合はepel.repo
を編集してください
Error: Cannot retrieve metalink for repository: epel. Please verify its path and try again
vim /etc/yum.repos.d/epel.repo
#baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch
↓
baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch
#mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch
golangのインストール
yum -y install golang
golangはこれだけ
droneのインストール
wget downloads.drone.io/master/drone.rpm
sudo yum localinstall drone.rpm
droneはデフォルトでSQLiteを利用します
MySQLやPostgresを使う方法もあるようです
その場合は/etc/drone/drone.toml
を編集することで実現できるようです
droneもrpmでインストールできれば完了です
起動
docker, golang, droneがインストールできたら早速起動してみましょう
droned -config="/etc/drone/drone.toml"
で起動できます
ターミナルで起動すると標準出力には何も表示されませんが、起動しています
80番でLISTENしているので
http://hostname/
にアクセスしてみましょう
まだ使うことはできませんが、起動していることは確認できると思います
セットアップ
http://drone.readthedocs.org/en/latest/setup.html
を元にセットアップしていきます
Githubにアプリを作成
droneと連携するためのアプリを1つ作成します
https://github.com/settings/applications
にアクセスし「Register new application」からアプリを作成します
以下のような感じで作成します
黒塗りしている部分はDroneが起動しているホストのIPやホスト名を入力してください
アプリの作成が完了したらアプリの詳細画面に戻りClient ID
とClient Secret
をメモしておきましょう
そして、drone.tomlを編集します
vim /etc/drone/drone.toml
[github]
client="メモしておいたClient IDを入力"
secret="メモしておいたClient Secretを入力"
の部分を記載してdornedを再起動してください
認証
再度http://hostname/
にアクセスするとGithubのアカウントを使って認証できるようになっています
Githubというボタンを押下しアプリからの認証を許可して、自分のGithubアカウントのパスワードを入力するとリポジトリが同期してdrone上に表示されます
※この辺りでうまくGithubのOAuthが発動しない場合は、構築したインスタンスのACL、FWの設定周りを確認してみてください
あとは、droneと連携したいリポジトリをアクティブにすればOKです
droneと連携してCIできるようにするには、travis.ciみたいにリポジトリのルートに.drone.yml
というファイルがないとダメなのでアクティブにする場合はファイルをあらかじめpushしておいてください
また、今回はGithubと連携しましたが、設定ファイルを見るとGithub_enterpriseやbitBucketなどとも連携できるので同じようにアプリを作って認証できるようにしてやれば、使えそうです
終わりに
結構長くなりましたが、今回の紹介は以上です
とりあえずCentOS上でも動作させることはできました
特につまるところはなかったですが、つまった場合はdronedでDebugログを出すといいと思います
0 件のコメント:
コメントを投稿