S3 + CloudFrontをTerraformで設定してCircleCIで更新する

「Terraform で S3+CloudFront+SSL/TLS 証明書 w/ ACM を設定して Hugo で作った static な Web サイトを CircleCI で自動 deploy する」やつができた。

できたもの

普通のいかにもHugoで作った Web サイトができた。
もう 2018 年なので手オペなどせず Infrastructure as Code で構築かつ CI でコンテンツ deploy です。
中身はまだない。
きっと酒とメシについての何かが書かれるのでしょう。

簡易な技術ドキュメントをHugoで書くと便利だった

サンプルコードのドキュメントをHugoで書いてサンプルコードと一緒に配ったら便利そうだったのでやってみた。

やりたいこと

仕事で他社さんにサンプルコードとドキュメントをセットでお渡ししたいのだけど社では GitHub Enterprise を使っているのでリポジトリを直接見ていただくことが難しいケースがある。

EC2 P3で使えるChainerMN入りのDockerイメージを作った

sonots 先生によるこの記事をやってみたという話です。

docker (nvidia-docker) を使ってマルチノードで ChainerMN を実行する方法(仮) - Qiita

概要

Dockerfile はここにあります。

mazgi/docker-cuda-cv: based on: https://gitlab.com/nvidia/cuda

ベースは NVIDIA さんのオフィシャルイメージです。

Hadoop黙々会を始めました

@usaturnさんと一緒に「Hadoop 黙々会」を始めました。

【SELECK掲載記念】AnsibleでPartitionを切る!

追記

さくらのクラウドについて取材していただいた記事も公開されました!
合わせてご覧ください!!

さくらのクラウドで「尖ったインフラ環境」を構築。カスタマイズに強い、その実力とは | SELECK


本編

先日「SELECK(セレック)」様にAnsibleの活用事例をインタビューいただきました。

数百台のサーバー構成を「Ansible」で管理。大規模 DSP システムを支える技術とは | SELECK

素晴らしい記事にしていただいたのでせっかくなら何かネタになりそうな実例をご紹介したいと考えた結果(?)、バッドノウハウが詰まったパーティションの切り方をご紹介したいと思います!

RackTablesで個人ネットワークを管理する

個人で使っているさくらのクラウドアカウントでサーバーやスイッチが増えてしまいどれが何やら分からなくなってきたのでRackTablesで管理しようと思い(立ってからだいぶ時間が)たちました。

ようやく重い腰を上げて RackTables を運用し始めたのでメモしておきます。

さくらのVPCルーターを使ってMacでVPN接続設定する

先日、書籍「新米サーバ/インフラ担当者のための 仮想サーバ/クラウド技術の常識」をいただいたので感想を書いたのですが、「MacでのVPNの設定がわからない」というお話があったのでMacでのVPN設定方法を簡単に書いておきます。

複数のサーバーに対してSSL証明書の期限を確認する

会社のサーバーが一斉に SSL 証明書更新のシーズンを迎えたので OpenSSL の各種コマンドで確認の手間を減らしてみる。

まず、 openssl s_client コマンドで /dev/null を標準入力に入れつつ標準エラー出力を捨てるとこんな出力が得られる。

Gentoo で普通の CVE-2015-7547 対策

追記

私が何か勘違いしてたようですが glibc-2.21-r2 (~amd64 マスクされてない)で patch が取り込まれてますね。。

# emerge -fOq glibc
>>> Fetching (1 of 1) sys-libs/glibc-2.21-r2::gentoo
# tar tf /usr/portage/distfiles/glibc-2.21-patches-7.tar.bz2 | grep 'CVE-2015-7547'
patches/00_all_0028-CVE-2015-7547-getaddrinfo-stack-based-buffer-overflo.patch

本文

皆さまにおかれましては CVE-2015-7547 の対応お疲れ様です。

#Gentoo Tips: いつなんどきでも #GentooInstallBattle で最新のstage3を入手する

前提

2015年も残す所あと数日ですね。今年はあと何回#gentooinstallbattleにエントリーできるでしょうか。Gentoo Linuxをインストールためには2つのアーカイブファイルをダウンロードします。

ssmjp で Gentoo の話をしてきました

先週の話ですがssmjp 2015/09 の回におじゃましてきました。

「一緒にプロダクション環境での Gentoo 勉強会」やりましょう!という話を現実にしてくださった@usaturnさん、そして初参加&&初登壇&&Gentoo ネタという暴挙(?)を広い懐で受け入れてくださった #ssmjp の皆様、本当にありがとうございました!

普通のScalaアプリケーションをebuildでdeployする

会社ではほとんどのアプリケーションをScalaで開発しさくらのクラウドやハウジング環境で運用しているのですが、どんな言語で開発するにせよどのような環境で運用するにせよ、当然ながらアプリケーションはdeployする必要があります。

さくらのクラウドで普通のゲートウェイサーバーを構築する

会社では相変わらずさくらのクラウド上で色々やっていますが、以前のGentooの記事が好評だったので今回も同じくGentooでいこうと思います!

今回は図のような構成でごく普通のGatewayサーバーを構築し、矢印で示したサーバーがインターネットに出られるようにします。

RedmineのユーザーページにGitHubへのリンクを表示する

会社では開発がほぼGitHub.com+Slackで完結するようにしていて、これはなかなかうまくいっています(と思っています)。 ただ、ハードウェア障害の対応等GitHubに載せにくいタスクもあり、そのようなタスクの管理にはさくらのクラウド上にRedmineを構築して使っています。

さくらのクラウドで普通のLDAP認証ができるサーバーを量産する

会社でSSHの公開鍵やSUDOの権限をLDAPで一元管理していっているのですが、忘れないうちにLDAPクライアント側の構築方法を書いてみます。
なお、サーバーはさくらのクラウド上で構築し、LDAPサーバーはldap1.example.comというFQDNでアクセスできるものとします。

普通のうるう秒対応をしました(June 30, 2015)

ITシステムに関わる人にとっては気が気ではなかったであろううるう秒ですが、無事に過ごすことができましたのでやったことをメモしておきます。

やったこと

今回のうるう秒を迎えるにあたっては自宅ラック友の会 ポータルの記事とHIROCASTERさんの7/1の閏秒を迎えるにあたってLinuxでは何をすべきか?を大いに参考にさせていただきました。

IEEE802.1X EAP-PEAP on Windows

WindowsでEAP-PEAP使うのが結構煩雑だったのでスクショ貼りつけておく。

How to install innobackupex on Gentoo Linux

Install xtrabackup-bin

# emerge -pvq xtrabackup-bin
[ebuild   R   ] dev-db/xtrabackup-bin-2.2.5

/usr/bininnobackupex, xbcrypt, xbstream, xtrabackup がインストールされる。

Download and extract qpress

quicklz.com から qpress をダウンロードして展開する。

# tar xvf qpress-11-linux-x64.tar -C /usr/local/bin/

Using innobackupex

Backup

# innobackupex --defaults-file=/etc/mysql/my.cnf --user=$USER \
  --password=$PASS --ibbackup=xtrabackup --slave-info \
  --safe-slave-backup --compress $TARGET_DIR

Restore

# innobackupex --user=$USER --password=$PASS --decompress $BACKUP_DIR
# innobackupex --user=$USER --password=$PASS --apply-log $BACKUP_DIR
# innobackupex --copy-back $BACKUP_DIR
# chown -R mysql:mysql /var/lib/mysql

How to increase ulimit on Gentoo

Linuxサーバーを運用していて「Too many open files」に悩まされることがある。

デーモンプロセスに対して ulimit を設定したい場合、Gentoo では /etc/conf.d/ の設定ファイルに rc_ulimit を追加するだけで簡単に設定できる。

Mount Engineを試してみた

id:onk さんのブログを読んで Rails の Mount Engine を試してみた。

Rails プロジェクトの初期化

まずプロジェクトを作成して welcome コントローラーを追加し、ルートパスで “Welcome!” を表示させる。

KeymotionをAirspaceに提出した

Leap Motion で Keynote をジェスチャー操作するアプリ「Keymotion」を Airspace に提出した。

ジェスチャー操作

  • Swipe Up: スライドショー開始
  • Swipe Right: 次のスライド
  • Swipe Left: 前のスライド
  • Swipe Down: スライドショー終了

動作要件

macOS のみ対応:

rbenvがすばらしすぎるので Scala, sbt, PlayFramework 版をつくってみた

Scala, sbt, Play Framework を使っていると、プロジェクトによって異なるバージョンが必要になることがある。Ruby には rbenv というすばらしいツールがあるので、同じ仕組みで Scala エコシステム向けのバージョン管理ツールを作ってみた。

#LeapMotion でKeynoteスライドショーしてみましたよ

話題のLeapMotionが届いたのでさっそくKeynoteのスライドショーを制御してみました!

会社のカフェを借りて動画を撮ったので、まずはそちらを見ていただくと何ができるかすぐ分かっていただけると思います!

#LeapMotion Keynote slideshow using Leap Motion …

とりあえず今回はKeynoteスライドショーの制御なんですが、調理や作業で手が汚れているときにページをめくったりと色々実用的な使い方もできそうです。あ、スライドは以前勉強会で使ったやつなんですが、手元にあるなかで一番問題なさそうだっただけでとくに意味ないです。

社内Jenkins勉強会でLTしました

私が勤めている株式会社ドリコムではよく社内勉強会が発生するのですが、今回は sue445の「やりましょう!」という呼びかけでJenkins勉強会が開催されました。 チラっとお呼ばれしてLTさせてもらいましたので資料を公開します。

ドリコム社内勉強会LT資料

Beginning comfortable documentation with jenkins and doxygen ( public ) from Hidenori Matsuki

「RubyならRDoc, JavaならJavadocを使えばいいのですが、(私が今開発している)C/C++/Objective-CだったらDoxygen使えるよ!」という内容です。