タグ

ブックマーク / int128.hatenablog.com (10)

  • Jenkinsfileによるジョブ管理のメリットと実例 - GeekFactory

    ジョブの設定をJenkinsfileで管理し始めてから3か月ぐらい経ったので、知見をまとめてみます。 Jenkinsfileを使うメリット Jenkinsの画面でジョブを管理していると以下のような問題が起きることが多いと思います。 誰かが勝手にJenkinsの設定を変更して動かなくなった ジョブ設定を別リポジトリに横展開したいけど、ポチポチ設定するのが面倒 JenkinsfileをGitで管理することで、以下のメリットがあります。 いつ、誰が、なぜジョブ設定を変更したのか後から調べられる Pull Requestでジョブ設定の変更をレビューできる ブランチを使ってジョブ設定を試行錯誤しやすい Jenkinsの運用ポリシー 前項のメリットを実現するには、Jenkinsを以下のポリシーで運用することが望ましいでしょう。 Jenkinsの設定は最小限に抑える なるべく画面からジョブ設定を変更せず

    Jenkinsfileによるジョブ管理のメリットと実例 - GeekFactory
  • Multibranch PipelineによるJenkinsとGitBucketの連携 - GeekFactory

    JenkinsのMultibranch Pipelineを利用するとCIで以下ができるようになります。 ビルドの設定を Jenkinsfile に書いてバージョン管理できる。 リポジトリへのpushやPull Requestのマージを契機にジョブを実行できる。 パイプラインでビルドフローを分かりやすく記述できる。 (2017/10/3追記) GitBucketの公式Wikiに設定方法を書きました。 github.com 以下の情報は古いため、GitBucketの公式Wikiを参照してください。 JenkinsとGitBucketを連携させるにはGitBucket Pluginを使う方法がありますが、GitBucketの仕様によりPull Requestのマージを契機にジョブを実行できない制約があります。Multibranch Pipelineを使うとPull Requestのマージを契機に

    Multibranch PipelineによるJenkinsとGitBucketの連携 - GeekFactory
  • クックパッドにおけるScalable Deploymentsのスライドが興味深い - GeekFactory

    クックパッドにおけるアプリのデプロイの資料が非常に興味深いので紹介します.これは @sora_hさんがRubyKaigi 2014で発表 された資料で,100台以上のサーバに短時間でアプリをデプロイする仕組みをどうやって作り上げたのかが説明されています. 以前,スライドの内容を箇条書きにまとめていたのでシェアします.最近では,Jenkins User Coferenceの発表(How We Use Jenkins? // Speaker Deck)でほんの少し引用されていたりします. 内容のまとめ スライドは90枚あります.ざっくりまとめた内容を以下に示します. 概況 140サーバに1日10回のデプロイを実施している(ピーク時) コードベースが大きい モデルだけで約 69K LOC プロダクトコードとテストコードを合わせると約 319K LOC デプロイのルール CIのビルドが成功したリビ

    クックパッドにおけるScalable Deploymentsのスライドが興味深い - GeekFactory
  • DockerでLinuxデスクトップを使ってみる - GeekFactory

    Linuxをサーバ用途に使う場合、クリーンな環境を保つため、XやGNOMEなどをインストールしないことが多いと思います。とはいえ、ちょっとした調査などでデスクトップ環境があれば作業効率が上がるケースもあります。そこで、Dockerを使って、独立した環境でLinuxデスクトップを使えないか調べてみました。 結論としては、XfceやLXDEなら動作しました。GNOMEやUnityは動作しませんでした。日本語入力は要調査です。 とりあえず、DockerでUbuntu Desktopを使うための手順を残しておきます。参考まで。 暫定手順 新しいコンテナを実行します。 docker run -p 5901:5901 -it ubuntu:latest /bin/bash コンテナ内で以下を実行します。 apt-get update apt-get install xfce4 tightvncserv

    DockerでLinuxデスクトップを使ってみる - GeekFactory
  • npm + gulp + bower でビルド自動化 - GeekFactory

    (追記) この記事は公開から時間が経っており、内容が古くなっています。2016年時点ではWebpackが圧倒的におすすめです。 JavaScriptCSSのビルドを自動化することで、手作業による無駄な時間やミスを削減できます。また、誰でもビルドできるようになるため、リリースのボトルネックを解消できます。 改善したいこと JavaScriptフレームワークやCSSフレームワークの依存関係を自動的に管理したい。ダウンロードして配置を手作業でやりたくない。 CoffeeScriptやLESSのコンパイルを自動的に実行したい。手順書を見ながらコマンドを叩くとかやりたくない。 ダウンロードしたライブラリをリポジトリに入れたくない。 出荷対象のリソースを明確にしたい。ゴミファイルをリリースしたくない。 どうやって実現する? bowerでライブラリの依存関係を管理する。 gulpでビルドを自動化する。

    npm + gulp + bower でビルド自動化 - GeekFactory
  • GitとJenkinsを使ってChefを運用する(続き) - GeekFactory

    id:mi_kattun / Cookbookを完全にGitで管理するのであれば、サーバにgitやデプロイツールでCookbookをコピーしてchef-solo実行するほうがシンプルな気がするけどChef Serverを使うメリットは何なんだろう。一覧性かな http://b.hatena.ne.jp/entry/d.hatena.ne.jp/int128/20130302/1362153651 確かに! Jenkins SlaveでGitリポジトリからChefリポジトリを取得し、Chef Soloを実行する、というパターンもあります。Chef Serverが必要ない場合はこのパターンの方がシンプルです。 Chef ServerとChef Soloの比較は cloud - What are the benefits of running chef-server instead of che

    GitとJenkinsを使ってChefを運用する(続き) - GeekFactory
  • GitとJenkinsを使ってChefを運用する - GeekFactory

    Chefはリポジトリをバージョン管理する仕組みを持っていますが、チームでの協調作業を考えるとバージョン管理システムを使う方が運用しやすいと考えます。稿では、GitとJenkinsを使ってChefを運用するための1つのパターンを考えます。 以下があることを前提とします。 Chef Server Chef Client Gitリポジトリ Jenkins 基的な考え方 CookbookをGitリポジトリで管理します。開発者がgit pushすると同時にChef ServerのCookbookが更新されるようにします。これにより、GitリポジトリとChef Serverが同期されるようになります。 また、後続ジョブとして各サーバでChef Clientが実行されるようにします。ビルドパイプラインを組むことで、Staging EnvironmentにおけるChef Client、Producti

    GitとJenkinsを使ってChefを運用する - GeekFactory
  • dnsmasqで始めるプライベートDNSサーバ - GeekFactory

    ローカルネットワークのホスト名とIPアドレスの対応はDNSサーバで管理すると便利です。IPアドレスを覚えたりhostsをメンテナンスするのは大変です。でもbindって難しそうだし、メンテナンスに手間がかかるし、という方にはdnsmasqがおすすめです。 dnsmasqは軽量なDNSサーバとDHCPサーバです。/etc/hostsを管理する延長でDNSサーバを管理できます。この記事ではDNSサーバに焦点を当てて説明します。 ローカルネットワークにDNSを立てる まず、以下の場合を考えてみます。 ホスト名とIPアドレスの対応を一元管理したい。 ローカルネットワークのホストには xxx.laputa.example.com を付与する。 FQDNでなくてもアクセス可能にしたい。 例えば、192.168.2.3 が muska.laputa.example.com という名前だとすると、 ping

    dnsmasqで始めるプライベートDNSサーバ - GeekFactory
  • 今日から始めるサーバ構築の省力化 - GeekFactory

    SSHクライアントたくさん並べてペーストしまくるのが許されるのは小学生までだよね と言ってみたかっただけです。こんにちは。 Capistranoでサーバ構築を省力化する方法を紹介します。サーバ構築の自動化といえばChefやPuppetが有名ですが、CapistranoはサーバにSSH接続さえできれば利用できるメリットがあります。データセンタに持ち込むノートPCにCapistranoを仕込んでおけば便利なツールになるし、短期間に検証用のサーバを構築する場合も有用なツールになるでしょう。Capistranoはデプロイツールとして使われることが多いですが、サーバ構築にも有用です。 CapistranoはRubyで書かれたツールで、複数のサーバにSSH接続してコマンドを実行できます。同様のツールとしてexpectがありますが、CapistranoのスクリプトはRubyの内部DSLなので書きやすく拡

    今日から始めるサーバ構築の省力化 - GeekFactory
  • SAStruts+Maven2+Subversionで開発を始めるまでの10ステップ - GeekFactory

    まずEclipse, Apache Tomcat, Subversiveを入れましょう。 sa-struts-tutorialを入手する プロジェクトのお手を入手します。zipを解凍したら、Eclipseにプロジェクトをインポートします。 Super Agile Strutsチュートリアル sa-struts-tutorial-1.0.x.zip http://sastruts.seasar.org/download.html m2eclipse Plugin EclipseからMaven2を使うためのプラグインを入れます。 下記のアップデートサイトからプラグインをダウンロードします。 http://m2eclipse.codehaus.org/update/ http://www.atmarkit.co.jp/fjava/rensai3/eclipseplgn11/eclipseplg

    SAStruts+Maven2+Subversionで開発を始めるまでの10ステップ - GeekFactory
    manabou
    manabou 2010/06/18
    WEB-INF/lib
  • 1