tkak's tech blog

This is my technological memo.

2023年振り返りと2024年抱負。

約4年ぶりにブログの更新。2023年の正月に抱負を書きかけて、早一年。そのままほったらかししていたブログの下書きを、まさか2024年正月に更新するとは。今年こそ雑に書いて公開しよう。 2023年振り返り 仕事 2023年の仕事について振り返ってみると、パブリ…

pack (Cloud Native Buildpacks) で Gradle マルチプロジェクトをビルドする

最近 Cloud Native Buildpacks を触って遊んでみたのでTipsを残しておきます。約4年ぶりくらいのブログ更新です😅 Cloud Native Buildpacksとは? Dockerfileを書かなくても、アプリケーションのソースコードからどんな言語のランタイムかをよしなに判断してコ…

InSpecではじめるテスト駆動インフラ

最近、新しくChefのCookbookを書く機会があったので、前から気になっていたInSpecを少し触ってみました。 github.com InSpecとは何か? InSpecは、Chef社が開発しているオープンソースのサーバーテストフレームワークです。サーバーのテストフレームワークと…

今更ですが、CoreOSでDocker Swarmクラスタを組んでマルチホストネットワーク機能を試しました(Proxy環境下)

Dockerを使って開発していると、本番環境でもDockerを使ってみたいなぁという気持ちになります。ただ、本番環境でDockerを使うのは、個人的にまだまだハードルが高そうな印象です。マルチホスト間のネットワークはどうするか?分散システムのクラスタリング…

sinatraとsidekiqを組み合わせて、簡単なWeb APIを作ってみた

sidekiqは、複数のjobを非同期実行させることができるrubyライブラリです。割と簡単にjobの並列処理がrubyで書けて、便利そうです。今回、年末から年始にかけて、ゆる〜くsinatraとsidekiqを組み合わせて、非同期型のjob実行Web APIを作ってみたので、まとめ…

Terraform moduleあるある

このエントリは HashiCorp Advent Calendar 2015 - Qiita 10日目の記事です。今回はTerraformのmodule機能に関する知見をご紹介します。 moduleとは? module "consul" { source = "github.com/hashicorp/consul/terraform/aws" servers = 3 } moduleは、Ter…

HashiConf 2015に参加してきました

9月28, 29にポートランドで開催されたHashiConf 2015に参加してきたのでレポートします。 セッションを聞いて カンファレンス全体を通して、一日目のMitchell Hashimoto氏のKeynoteがやはり一番エキサイティングでした。事前に新しいプロダクトがリリースさ…

Chefを学ぶのが面倒な人のInfrastructure as Code with JSON

最近、いかにChefの学習コストを小さくしつつ、組織にインフラのコード化(Infrastructure as Code)を導入するか、について悶々と考えていたので、まとめてみた。 Chefの辛み インフラのコード化をするにあたって、Chefは最初に覚えることが多くてなかなか辛…

TerraformのProviderを作った

Terraform v2.0から、オリジナルProviderを作るためのフレームワーク機能が追加されている。今回この機能を使ってオレオレProviderを作ったので、やったことをまとめておく。 Go API library まず、TerraformのProviderを作る前に、自分が使いたいクラウドサ…

TerraformのGoogle Cloud providerを試してみた。

先日参加したgcp ja night #28 - connpassで、 Google Cloud Platformを$500分無料で使えるクーポンをいただいたので、 Terraform by HashiCorpのGoogle Cloud providerを試してみた。 Terraformは、Vagrantとかインフラ便利ツールを作っているHashicoap社の…

Packer + ChefDK + Docker(kitchen-docker)で、Chef Cookbookの開発環境整備を楽にする。

ChefのCookbookを書き始めるには結構準備することが多くて、Cookbookの開発環境を作るのがなかなかつらい。手元のPCにVirtualBoxとVagrantを用意し、rbenvやBundlerの使い方を学び、必要なgemをインストールする。Chefだけでも学習コストが高いのに、周辺の…

今更Chef Cookbookベストプラクティス

去年Chefが大流行して今更Chefの話を書くのも恥ずかしい気がするけど、@kajikenからリクエストがあったので、僕が思うChefのCookbookのベストプラクティスを書いてみる。 Berkshelf way まずはBerkshelf について。BerkshelfはCookbookの依存関係を解決して…

VagrantでVMware vSphere(ESXi)上のVMを操作する「vagrant-vsphere」を試してみた。

Vagrantのproviderは、VirtualBoxやAWSなど様々ありますが、VMware vSphere(ESXi)用のvagrant-vsphereを試してみたので備忘録として残しておきます。 Installation まずは、vagrant-vsphere pluginのインストールから。githubのREADMEに書いてますが一応。 $…

Proxy環境下でDockerを使う。

Proxy環境下でDockerを使ってみたのでメモ。使った環境はこんな感じ。 OS: CentOS 6.5 x86_64 Docker: 0.7.6 Dockerデーモンを起動するときに、環境変数でproxyの設定をする。 # http_proxy=http://hoge:1234 docker -d &起動スクリプトからDockerを起動する…

個人的#ChefConf2013まとめ。

最近日本でも何かと話題になっているconfiguration management toolのchefですが、やっぱり海外のほうがDevOpsが進んでますね。 今回のカンファレンスは、導入事例とかベストプラクティスな感じの話が多かったです。個人的に面白かったセッションを5つ、ロ…

アフィリエイトソンに参加してきた。

Web APIを使ったECサイトを開発してアフィリエイト収入で小遣い稼ぎをしましょうというコンセプトのアフィリエイトソンなるイベントに参加して来ました。【楽天・ヤフー・リクルート3社共催】第1回アフィリエイトソン -開発して稼ごうお小遣い!-(4/5,6) …

Bash Tips

最近、短期間に大量のサーバに設定をいれるという仕事がたんまりきていて、とてもじゃないけど手作業なんてしんどいので、ちまちまと使い捨てスクリプトを書いて作業を楽にしてます。 そんな中『これは使える!』というスニペットを残しておきます。 seqコマ…

RHEL6系/CentOS6系のファイルパーミッションのdot「.」をなくす方法

RHEL6系/CentOS6系から、selinuxの管理下にあるファイルにはファイルパーミッションにdot「.」がつくようになってます。 [root@localhost ~]# ls -ld /etc drwxr-xr-x. 57 root root 4096 Jan 4 13:21 /etcselinuxを無効化しても、元々あったファイルにはド…

VagrantのBase Boxを作ってみた。CentOS6.3 x86_64編

Vagrantは、Virtual BoxのVM(仮想サーバ)管理を簡単にするためのツールです。 VMを、コマンドラインから起動、停止、削除、etcできるので、テストや開発環境作成などでかなり重宝します。 今回はそのテンプレートになるBase Boxを作ってみたので、メモを残…

Opscode Chef のトレーニングに参加してきた。

久々のblog更新。 日本Chef User会のFacebookで紹介されている Chefのハンズオントレーニングイベントに参加してきました。 Japan Chef Users Group | Facebookトレーニングの講師は、Opscode社のSean OMeara 氏。 全部英語でしたが、(たぶん)普段普通に話…

chefのresourceとLWRP

chefのcookbookは、Lightweight Resources and Providers (LWRP)という機能を使うことによって、 recipe内で使うresourceを簡単に定義することができます。 Lightweight Resources and Providers (LWRP) - Chef - Opscode Open Source Wiki 用意するファイル…

SaltStackを試してみた

SaltStackは、大量のサーバを管理運用するためのリモート制御・設定管理ツールです。 capistranoなどのリモート制御ツールとpuppet, chefなどの設定管理ツールを合わせたようなものという印象です。 pythonで書かれてます。http://saltstack.org/ インストー…

Linuxサーバ構築ツールまとめ

仮想化技術が進歩し、大量のサーバを管理・構築することが多くなりました。PuppetやChefなど、サーバ構築・管理を自動化するいろんなツールがあるので、 整理しておこうと思います。以下の3つに分類します。 Provisioning Tools kickstart cobbler crowbar …

python開発環境構築

毎回忘れるので残しとこうと思います。 ■ ref homebrew http://mxcl.github.com/homebrew/ https://github.com/mxcl/homebrew/wiki/the-brew-command git http://blog.digital-squad.net/article/123090058.html virtualenv http://www.virtualenv.org/en/la…

[diary] 2012/01/29- 02/04

今までウィスキー苦手だったけど、高級ウイスキーを試飲する機会があって価値観変わった。「一期一会」うまし。 TOEIC対策として、特急シリーズという本がいいらしい。TOEICマスターの先輩が言ってた。 レインボーブリッジが見えるホテルを予約してみた。階…

redmineの構築

あんまりよくわかってないけど、 さくらのVPSにredmineを構築しました。http://blog.redmine.jp/articles/redmine-1_2-installation_centos/ ↑の手順で、1時間くらいで初期構築ができました。さらにredmineとsubversionの連携もしたんですが、 連携も下記手…

sshの初期設定

新年もあけたということで、さくらのVPSの再構築でもしようかと。 まずは、大事なアカウントとsshまわりの設定から。http://blog.myfinder.jp/2010/09/vpsssh.html ほぼ、↑のサイトに沿ってやってって感じです。 wheelグループの登録とか、sudo実行のログ取…

[diary] 2012/01/09

dotcloudいじったが、挙動がいまいちわからない。postgresqlを使うと404 not foundが表示される。 ネットで買った自転車を自分で組み立てたので、自転車屋に持っていってチェックしてもらいたい。 ネットで、プロポーズの経験談を読んだ。そろそろ時間がない…

Xcodeを入れずにOS Xでgccを使う方法

MacPortsやhomebrewを使いたいときにgccが必要になるので、 今まで仕方なくXcodeをいれてましたが、 Xcodeを入れずにgccを使う方法を見つけたので、 メモしておきます。環境 ■OS 10.7.2 ■Xcode 4 and 3 (※インストール済み) まずは、インストール済みのXcode…

はてなブログを初めてみた

はてなブログがオープンベータ化したので、初めてみました。