Articles in the Server category

  1. Gitlab CI とgitlab-ci-multi-runnerのwindows版を使ってwindows側にビルドを走らせるCIを作る

    趣味、仕事のgitリポジトリやイシュー管理はGitlabを利用しています。最近のバージョンにはGitlab CIというCI(継続的インテグレーション)が搭載されていまして、適切な設定が用意できればGitlabのプロジェクト内でビルドをさせることができるようになります。

    仕事ではWindowsが対象で、Windows上でビルド作業が出来ないと困るため、unix向けのCIツールは使えず、以前からjenkinsを使ってみたいなーと言いながらすっかり対応をせずに放ったらかしにしていました。 が、最近はzc.buildoutでワン・コマンドでビルドできるようになったし、Gitlab CIのRunnerという概念を知り(jenkinsだとスレーブですね)、WindowsでもRun nerを動かすことができるらしいので試してみました。若干ハマりどころがありますが、動かすことは可能です。

    TL;DR

    • Gitlab CIのビルドはWindowsを使うこともできる
      • RunnerはGo製らしい
    • Windowsサービスとして実行できるがハマりどころがある
    • とりあえず試して動いた

    Gitlab CIのビルドはWindowsを使うこともできる

    Gitlab CIのビルドはRunnerというアプリ、サービス(デーモン)で実行されるようです。CIと予め接続したうえで、gitのclone(fetch)を行い、.gitlab-ci.yml というYAML文法の設定ファイルをリポジトリのルートに置くことで、commitした段階でビルドしてくれます。

    GitLab.org / gitlab-ci-multi-runner · GitLab

    GitLab Documentation ...

  2. カンバン, タスクボードシステムを試してみた2: leanlabs.kanban編

    前回はkanboardを紹介しましたが、もう一つ紹介。Leanlabsのプロジェクトであるkanbanです。

    Gitlab kanban board

    最近(このプロジェクトのブログは3月から始まったらしい)作られたタスクボードアプリで、基本的にgitlabとの連携が必要な物です。gitlab private apiを使って、webhook以上の挙動として、gitlab側のissueをタスクボードに乗せて、leanlabs.kanbanとgitlabの双方でボードの操作が出来ます。あとGitlabとのoAuth認証が必須です。

    タスクボードとしての機能以外はそんなに入っていないようで、kanboard側の解析機能やスケジュール機能は無いです。ただgitlabのラベルやマイルストーン, ユーザー一覧も取れるので、gitlabに特化したタスクボードシステムで、よりプログラムエンジニアリング側のプロジェクトならぴったりかも知れません。ただバーンダウンチャートが書けないので、視覚化が辛いですね。

    インストール, gitlab連携

    dockerとdocker-composeを入れた環境で、以下のサイトに従います。

    Kanban documentation | Installation

    dockerを含めたdoker-composeの入れ方はこちらより。最近の環境構築ってスクリプトをダウンロードして実行するのが当たり前になりましたね。

    Docker Compose

    dockerを使うので、dockerが使えれればすぐに構築出来ます。設定類は、gitlabのホストURL(IP)やprivate api token。あとこのシステム向けのシークレットキー(KANBAN_SECRET_KEY)が必要です ...

  3. カンバン, タスクボードシステムを試してみた1: kanboard編

    エンジニアリング的なプロジェクトの進め方として、アジャイル開発というのがあります。プロジェクトでやるべきタスク対して重み付けをして、一定期間を指定しながらタスクを消化していき、定期的に進捗をチェックしながらプロジェクトを進めていく手法です。

    アジャイルについては自分もまだ理解しきってないこともあるので、書籍等に解説を任せるとして。

    アジャイルサムライ――達人開発者への道
    B00J1XKB6K

    ASIN : B00J1XKB6K
    Amazonで詳しく見る
    Powered by Amazon Quick Affiliate (JP)

    アジャイルを運用する道具としてよくあるのは付箋とボードを使ってタスク管理をする方法です。 自分も前回のプロジェクトでは付箋とホワイトボードを使ってました。こういう感じです。

    紙とペンが一番やりやすいのですが、ボード自体がない場所ではタスクを見れない不満もありました。

    webサービスでカンバンができないかと探すと様々出てきます。Trelloは有名らしいです。

    そういったサービスを使うのもありでしたが、開発はセルフホストのgitlabのissueもよく使うので、issueを使ったカンバンシステムがないかと思ってましたが、Gitab公式で紹介されているサードパーティーのアプリケーション内にあるスクラムボードという項目があるではないですか!

    Applications Supporting GitLab | GitLab

    その中にあった2つのサービスを試してみました。どちらもセルフホストでOSSです。

    Kanboard

    Kanboard - Simple and open source visual task board

    こちらは、スタンドアローンでも利用できるタスクボードサービスです。gitlab以外にも様々なサービスと連携出来ます。機能一覧はこちらで見れますが

    Features of ...

  4. vagrant-parallels + ubuntu 14.04 でDHCP環境上でDNSサーバーを変更(追加)する方法

    Macbookでvagrant+parallelsの組み合わせでvagrantを大変便利に利用していますが、各ゲストのdnsサーバーを変更したいときにちょっと困って何とかした話です。

    問題

    DHCPでアドレスを貰っている状態で、DHCP側で貰ったDNSのアドレスを変えたい時があります。今回はvagrant上のUbuntuマシンにsamba4 Domain Contorollerを実験的に入れて試している最中で、DNSだけをsambaで使うDNSサーバーへ変えたくなりました。
    (なおvagrantのpublic networkの設定でstaticにはしていないです。)

    普段、Ubuntu serverの固定IPで設定した時のDNSを変えたいときは、 /etc/network/interfaces ファイルにdns-nameserverを加えるだけです。自動的にresolvconf/etc/resolv.conf を書き換えてくれます。

    $ sudo vim /etc/network/interfaces
    iface br0 inet static
            address 192.168.3.50
            netmask 255.255.255.0
            network 192.168.3.0 ...
  5. Zabbix 2.4を使ってみた - セットアップ編

    最近になって、事務所にいろんなネットワーク機器を入れましたが、監視できるツールを使ってみたくなりました。だいぶ前にMuninを使っていましたが、syslogも取れたり、設定しやすいものはないかなと探していましたが、Zabbixという監視サーバーアプリが良さそうだったので使ってみてます。

    Zabbixとは

    監視サーバーアプリです。専用のエージェントを使ってLinuxやWindowsの監視、SNMPの監視も出来ます。 業界的にもよく使われているようです。

    公式サイト

    ドキュメント

    日本語は2.2まで提供されていました。2.4もそこまで変更は無いので2.4のドキュメントとセットでみると理解が深まりそう。

    参考

    統合監視ツール「Zabbix」によるサーバー監視 - さくらのナレッジ

    (さくらのナレッジに2.4対応版の記事もあったのですが、中身がそっくり消えてしまっているのでリンクしませんでした。)

    環境 ...

  6. mdadmを使ったRAID1のディスクを解除して普通のディスクとして使う

    Ubuntu 14.04 にてmdドライバー(mdadm)を使って作成したRAID1ディスクを解除して普通のディスクにするまでの履歴です。完璧にメモ書きです。

    mdadmを使ってRAIDの構成を解除

    参考: カラスはデスクに似ているか? » md RAID deviceの削除

    利用している環境からアンマウントする, fstabに書いてある場合は削除しておこう

    $ sudo umount /dev/md0
    

    mdデバイスをストップ

    $ sudo mdadm --misc --stop /dev/md0
    

    ディスクのスーパーブロックを削除。数秒かかるはず。

    $ sudo mdadm --misc --zero-superblock /dev/sd**
    # *はそれぞれ必要な文字や数字
    

    cat /proc/mdstat/ でmdデバイスの解除を確認

    /etc/mdadm/mdadm.confの内容を消す もしくはmdadm —detail —scanの内容で上書きする

    ばらしたディスクの中身を空にして普通のディスクにする

    普通のディスク ...

  7. Githubクローンを試す gitbucket編

    gitlabを試した続きです。gitbucketも試してみました。

    今回もVagrantのparallels/Ubuntu-14.04のboxを利用しました。

    公式, 参考

    利用方法

    Ubuntu 14.04でインストールするとき、まずjava8を入れます。

    oracleのjavaが良いと思われるので、webupd8というUbuntu関連を扱うブログサイトが公開しているPPAを利用します。 別にPPAでなくても良いと思いますが、パス周りで面倒と思うなら、このリポジトリで良いと思います。(ググると一番上に出てきたりしますし)

    参考: Java - ubuntuでoracle-jdk8をインストールしておく - Qiita

    $ sudo apt install software-properties-common
    $ sudo add-apt-repository ppa:webupd8team/java
    $ sudo apt-get install oracle-java8-installer ...
  8. uvtoolのネットワークをブリッジ接続させる

    書き残しです。気が付かなかったので。

    KVM+libvirtを動かしているマシンをubuntu 14.04にアップグレードしてから、uvtool が利用できるようになったのでkvmでマシン作りたいときはこれで作ってます。

    イメージがクラウドで利用されているのもの(Ubuntu Cloud Images)が手に入るので、一度必要なイメージをダウンロードしたら次はそれをリンクしてマシンを生成してくれるようで、OSのインストール作業というのが無いんです。非常に気が楽にマシンを作れます。

    何かを試す程度ならいいんですが、ちょっと問題が

    ネットワークがNATになってしまう

    ubtoolのデフォルトのネットワークはvirbr0というインターフェースを指すようで(libvirtが自動で生成するインターフェース)、これはNATのようです。

    libvirt: Wiki: Networking

    何がまずいかというと、例えばGitlab試したい!とかDocker試したい!とかで必要なサービスへアクセスさせようとした時に、NAT超えする設定を書く必要があるから。

    ブリッジで出せるといいなあと思ってました。できるのかな?と思ってたのですが出来ましたのでメモ書き。

    --bridgeオプションを使う

    $ uvt-kvm create example-bridge release=trusty --bridge br0 --package avahi-daemon
    

    これはlibvirt側のオプションです。uvtoolはlibvirtのオプションも使えるんですね。

    何も引数を渡さないでuvt-kvm createを使うとuvtoolが定義しているテンプレート(libvirt側に登録させるxml ...

  9. Githubクローンを試す GitLab編

    公私共にGitを使うようになって、gitが使いやすいプロジェクト管理システムが使いたくなりました。githubももちろん考えたのですが、一人でコード管理しているのに契約するのはちょっとなあと思いまして。

    それと今まではTracを使ってきてましたが、markdownが標準で使えないため(特殊タグなら使える)遠ざかりつつありまして、githubクローンも出てきてるし使ってみようと試しています。

    githubのクローンと言ったら最初にgitlabが思い浮かんだのですが(あと大学の先輩におすすめされました)、gitbucketというscale製のクローンもあるそうです

    それで今回はgitlabをインストールして試してみた編です。

    公式サイト、情報源

    インストール

    確認環境

    Mac上のVagrant+ParallelsにUbuntuを入れて、その中で作業しました。

    • OS X Yosemite 10.10.?
      • Vagrant
      • Parallels Desktop 10 ...
  10. Mac OSのParallelsで利用できるboot2dockerでdockerを動かす

    前回、kvm上のubuntuでdockerをインストールして入門しようとしましたがうまく行きませんでした 入門のときに面倒なことは避けるほうが良いです。そこで、手っ取り早くVagrantでdockerのイメージを入れて、dockerしてみようと思います。

    セットアップ方法

    前提条件は

    • parallelsがインストール済み
    • vagrantがインストール済み
      • Download Vagrant - Vagrant
      • brew経由で入れようとするとvirtualboxも入れようとしていたので公式から落として入れました(確か)
    • vagrant-parallelsプラグインをインストールする。

    後は公式の方法に従うだけ!しかも丁寧にvagrant-parallelsのインストールも書かれていました。

    Parallels/boot2docker-vagrant-box

    Hello Worldする専用のコンテナイメージがあるんですね。実行してみると

    hiroshi-no-MacBook-Air:boot2docker hiroshi$ docker run hello-world
    Unable to find image 'hello-world:latest' locally
    hello-world:latest: The image you are pulling has been verified
    511136ea3c5a: Pull complete
    31cbccb51277 ...

About Me

実家の自動車プレス金型設計業(sano-design.sakura.ne.jp)に所属。
また東海大学石井研究室(ishiilab.net)でたまにお手伝いしてます。
サイト制作/python/Ubuntu 作ったり扱います。 小さいガジェットがとっても好き。
最近は諸事情で家事業が多めです。

Tags

スポンサードリンク