ブックマーク / kohkimakimoto.hatenablog.com (6)

  • Goでジョブキューを実装した - オープンソースこねこね

    HQというGoで実装したジョブキューを公開しました。 github.com WebのUIもあります。 概要 以下の特徴があります。 Goによる実装で、シングルバイナリ。 スタンドアロンのHTTP APIサーバー。ジョブのデータベースも組み込みであるため、別途特別な依存を必要としないで動作する。 シンプルでプログラミング言語非依存。HTTP APIでジョブを投入し、ジョブはHTTP POSTメッセージをワーカーアプリケーション(Webアプリ)に送信するというアーキテクチャ。 フロントエンドとしてCLIとWebUIを組み込みでサポート。 上記のリポジトリのREADMEにも載せてありますが、ざっくりジョブのフローを図解すると、以下のようなアーキテクチャになっています。 HTTP APIでジョブ(JSON)を投入します。HQはジョブを取り出し、ジョブに記載されたURLにHTTP POSTして、別途

    Goでジョブキューを実装した - オープンソースこねこね
    nishitki
    nishitki 2020/01/06
  • Bashスクリプトのチートシートと便利なスニペットまとめ - オープンソースこねこね

    Bashでスクリプトを書く際によく自分が使っている小技や関数などです。 またBashでは他のプログラミング言語以上に$や:などの記号の使い方が独特でググラビリティが低いので、基文法などもチートシートとしてまとめておきます。 基文法 変数と配列 制御構文 while for-in if - elif - else if文のone-liner 文字列比較 文字列が等しい (=) 文字列が等しくない (!=) 空文字、文字列長が0 (-z) 空文字でない、文字列長が0でない (-n) 数値比較 数値が等しい (-eq) 数値が等しくない (-ne) 数値がより小さい (-lt) 数値がより大きい (-gt) ファイルの判定 存在する (-e) ファイルである (-f) ディレクトリである (-d) シンボリックリンクである (-L) 関数 便利なスニペット 実行スクリプトがあるディレクトリを

    Bashスクリプトのチートシートと便利なスニペットまとめ - オープンソースこねこね
    nishitki
    nishitki 2018/01/21
  • SSHラッパーコマンドEsshのv1.0.0をリリースしました - オープンソースこねこね

    開発の経緯 機能 利用例 ログイン時にターミナルの色を変える アプリケーションのデプロイ Esshは、zsh補完やLuaスクリプトによる動的なコンフィグレーションなど、便利機能を実装した、sshのラッパーコマンドです。 github.com ドキュメントをまとめたWebサイトも作成しました。 https://essh.sitespread.net/ 上記Webサイトのトップにasciinemaで撮ったターミナルオペレーションのデモを乗せましたので、そちらを見ていただければ、どういったものか大体のことはわかると思います。 開発の経緯 2015/11に以下の記事を書き、Zsshというコマンドを作成しました。 kohkimakimoto.hatenablog.com その後、CentOSのリポジトリにzsshというパッケージが存在していたため、コマンド名をzsshからesshに変え、自分の利用に

    SSHラッパーコマンドEsshのv1.0.0をリリースしました - オープンソースこねこね
    nishitki
    nishitki 2017/04/13
  • Goでプロビジョニングツールを作った - オープンソースこねこね

    GitHub - kohkimakimoto/cofu: Minimum configuration management tool written in Go.github.com CofuというサーバプロビジョニングツールをGoで実装しました。Itamaeを参考に作りました。実装言語の違い(ItamaeはRubyによる実装)はありますが、外部仕様、内部実装、共にかなり似せて作ってあるので、ItamaeまたはItamaeが参考にしているchefを使ったことがあると、理解は簡単かと思います。特徴をざっくり説明すると、 ローカルでのプロビジョニングのみ対応。SSHなどでのリモートサーバのプロビジョニングはサポートしない Goなので実行ファイル一個で動く。導入が簡単 レシピはLuaのDSLで記述する 今のところ動作プラットフォームはRedHat(CentOS)のみをサポート あたりでしょうか。

    Goでプロビジョニングツールを作った - オープンソースこねこね
    nishitki
    nishitki 2016/07/02
  • sshのラッパーコマンドを作った - オープンソースこねこね

    GoでSSHコマンドに便利機能を追加したコマンドを作りました。 2017/04/11 追記: この記事の内容は古くなっています! 2017/04/11時点の最新の仕様は、次の記事を参照してください SSHラッパーコマンドEsshのv1.0.0をリリースしました - オープンソースこねこね 追記ここまで。以下は2015/11時点の古い情報となります。 github.com 機能として Luaで~/.ssh/configに相当する設定を書ける。 zshの補完機能を使って、接続先一覧を出す。 サーバ接続時にフックを仕込める。自分はスクリーンの色を変えるの使っている。 複数のリモートサーバにまとめてコマンドを実行する。 といったところです。詳細はリポジトリのREADMEを見ていだければと思います。 ビルド済みバイナリをリリースページにおいてあるので、インストールはダウンロードして解凍してパスの通っ

    sshのラッパーコマンドを作った - オープンソースこねこね
    nishitki
    nishitki 2015/11/24
  • JenkinsとDockerでTravisっぽいCIサーバを育ててみている - オープンソースこねこね

    最近プライベートなプロジェクトのCIにはcircleciとかが人気なんでしょうかね。 GitHub 時代のデプロイ戦略 - naoyaのはてなダイアリー 近頃のCIサーバはアプリケーションのテストだけじゃなく、インフラのテストやデプロイ、ChatOpsなどgitやチャットツールなど他のシステムと連携した自動化のための必須プラットフォームといった感じになってきてる。とはいえ、趣味で開発しているプロダクトに余計なコストはかけたくない。ああ、でもやっぱCIはしたい。 そんなわけで以前から契約だけしていて放置気味だった、さくらのVPSの1GにjenkinsをたててオレオレCIを育てているのでその辺のことを書いてみる。CIの実行環境はDockerを使って仮想化し、ジョブの内容はTravisやcircleciのようにリポジトリ側のyamlファイルに記述できるようにしてみた。構成をざっくりと図解すると以

    JenkinsとDockerでTravisっぽいCIサーバを育ててみている - オープンソースこねこね
    nishitki
    nishitki 2014/10/14
  • 1