サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
今年の「#文学」
tkak.hatenablog.com
最近、新しくChefのCookbookを書く機会があったので、前から気になっていたInSpecを少し触ってみました。 github.com InSpecとは何か? InSpecは、Chef社が開発しているオープンソースのサーバーテストフレームワークです。サーバーのテストフレームワークといえば、Serverspecが有名ですが、InSpecはインフラ管理向けというよりコンプライアンスの担保だったりセキュリティ要件を満たしているかどうかのテスト用作られたツールになっています。InSpecのGithubには、 InSpec is inspired by the wonderful Serverspec project. Kudos to mizzy and all contributors! と記載があるように、Serverspecにインスパイアされているようです。なので、基本的にServers
Dockerを使って開発していると、本番環境でもDockerを使ってみたいなぁという気持ちになります。ただ、本番環境でDockerを使うのは、個人的にまだまだハードルが高そうな印象です。マルチホスト間のネットワークはどうするか?分散システムのクラスタリングはどうするか?コンテナのスケジューリングは?監視は?ログは?デプロイの仕組みは?負荷が高い時の対応はどうするのか?セキュリティは?など、運用面で色々と考えなければなりません。さらにDocker界隈のツールは様々なツールが存在していてどれから手をつけていいのか選択に困ります。最初はなるべく小さく始めたいところです。なので、今回、本番環境を意識したDocker環境をより少ないツールで作れるかどうか試してみました。ひとまず、クラスタ組んで、マルチホストネットワーキング機能が試せるところまで。使ったツールは以下になります。 CoreOS - Do
sidekiqは、複数のjobを非同期実行させることができるrubyライブラリです。割と簡単にjobの並列処理がrubyで書けて、便利そうです。今回、年末から年始にかけて、ゆる〜くsinatraとsidekiqを組み合わせて、非同期型のjob実行Web APIを作ってみたので、まとめておきます。 背景 GUIしか存在しない、いにしえのツールをWeb API化(poltergeistを使ってブラウザ操作部分を自動化し、sinatraとsidekiqを組み合わせてAPIを作成)したかったからです。 なお、今回作ったものはGitHubにあげました。 github.com 開発環境 今回Dockerも触ってみたかったので、ローカル開発環境をDockerで作りました。 OS X 10.11.1 (15B42) Docker version 1.8.2, build 0a8c2e3 docker-ma
このエントリは HashiCorp Advent Calendar 2015 - Qiita 10日目の記事です。今回はTerraformのmodule機能に関する知見をご紹介します。 moduleとは? module "consul" { source = "github.com/hashicorp/consul/terraform/aws" servers = 3 } moduleは、Terraform resourceを抽象化するためのものです。よく使うパラメータをmodule内に隠蔽して入力項目を減らしたり、複数のresourceをまとめたり、tfファイルの見通しを良くするために使います。 生のresourceを使ってTerraformの設定ファイルを書くのには、ある程度インフラの知識が必要です。module機能を使って、可能な限り入力項目を簡潔にすれば、インフラの知識がない人でも
9月28, 29にポートランドで開催されたHashiConf 2015に参加してきたのでレポートします。 セッションを聞いて カンファレンス全体を通して、一日目のMitchell Hashimoto氏のKeynoteがやはり一番エキサイティングでした。事前に新しいプロダクトがリリースされる噂はあったんですけど、まさか二つ発表されるとは…。しかも、発表の流れがめちゃくちゃ良くて、みんなワクワクしながら新プロダクトのリリースを待ってたところにNomadが出てきて、おー、ってなったところに、さらにその後『One more thing』でOttoが発表されて、会場はだいぶ盛り上がってました。え、それどこの、スティーブジョブズですか?ってなってました。カリスマ性半端なかった。 個人的に新プロダクトの中でもOttoはとても興味深くて、開発者と運用者の間の責任領域をうまく抽象化し、開発、インフラの構築、
最近、いかにChefの学習コストを小さくしつつ、組織にインフラのコード化(Infrastructure as Code)を導入するか、について悶々と考えていたので、まとめてみた。 Chefの辛み インフラのコード化をするにあたって、Chefは最初に覚えることが多くてなかなか辛い、という話をよく耳にする。Chefの動作概念、Chefの各種リソースの使い方、Chefの周辺ツール群の使い方、Cookbookのコーディング規約など、Chefを使い始めるために覚えるべき内容は結構多い。組織が大きくなればなるほど学習コストはバカにならないし、インフラエンジニアに日常的にコードを書いてもらうことはなかなか難しい。そんな環境でInfrastructure as Codeを広めようとしても、現実的になかなかうまくいかない。インフラをコード化して業務改善がしたいのに、いつの間にかみんなにChefを広めることが
Terraform v2.0から、オリジナルProviderを作るためのフレームワーク機能が追加されている。今回この機能を使ってオレオレProviderを作ったので、やったことをまとめておく。 Go API library まず、TerraformのProviderを作る前に、自分が使いたいクラウドサービスのGo API libraryを探す。なければ自分で作る。 今回はGMO ConoHaクラウド用のAPI libraryを作った。ConoHaクラウドは今のところオブジェクトストレージ(OpenStack Swift)APIしか提供していなかったので、オブジェクトストレージを操作する機能だけのものになっている。 tkak/conoha · GitHub また、他のクラウドサービス向けのプラグインを作る時の参考用に、簡単なAPI client libraryの型みたいな物も作ってみた。 t
去年Chefが大流行して今更Chefの話を書くのも恥ずかしい気がするけど、@kajikenからリクエストがあったので、僕が思うChefのCookbookのベストプラクティスを書いてみる。 Berkshelf way まずはBerkshelf について。BerkshelfはCookbookの依存関係を解決してくれる便利ツール。基本的にCookbookはプロジェクトとは別なリポジトリで管理して、プロジェクトごとに必要なCookbookをBerkshelfで取ってきて使うのがいいと思う。Cookbookのバージョン管理を厳密にできるので、毎回同じサーバ環境が構築できる。あと、人が作ったCookbookを使い回せるので、車輪の再発明しなくてすむ。素晴らしい。 ただ、Berkshelfはバージョンが3系になって、Berkshelf用のAPIサーバを立てないといけないので、僕は未だに2系を使ってる。C
Proxy環境下でDockerを使ってみたのでメモ。 使った環境はこんな感じ。 OS: CentOS 6.5 x86_64 Docker: 0.7.6 Dockerデーモンを起動するときに、環境変数でproxyの設定をする。 # http_proxy=http://hoge:1234 docker -d &起動スクリプトからDockerを起動するときは、/etc/sysconfig/dockerファイルでproxyの設定を行う。 # cat > /etc/sysconfig/docker export http_proxy="http://hoge:1234/" # service docker start 追記2 (Jul 10, 2014) CentOS 7.0編 OS: CentOS 7.0 1406 x86_64 Kernel: 3.10.0-123 Docker: 1.0.0-1
Vagrantのproviderは、VirtualBoxやAWSなど様々ありますが、VMware vSphere(ESXi)用のvagrant-vsphereを試してみたので備忘録として残しておきます。 Installation まずは、vagrant-vsphere pluginのインストールから。githubのREADMEに書いてますが一応。 $ vagrant plugin install vagrant-vsphere Prepare dummy box 次にダミー用のboxイメージを作成します。vsphereを使う場合は、virtualboxとは違ってローカルにboxイメージは置きません。 $ cd ~/.vagrant.d/gems/gems/vagrant-vsphere-0.8.2/example_box/ example_boxディレクトリ配下にmetadata.json
最近日本でも何かと話題になっているconfiguration management toolのchefですが、やっぱり海外のほうがDevOpsが進んでますね。 今回のカンファレンスは、導入事例とかベストプラクティスな感じの話が多かったです。 個人的に面白かったセッションを5つ、ログとして残しておきます。 #ChefConf 2013 Scaling Configuration Management phil Dibowitz -- facebook slide --> Scaling Configuration Management youtube --> ChefConf Keynote Session - Phil Dibowitz - YouTube つい最近facebookでPrivate Chefを導入したとかニュースになってましたが、 初日のメインセッションでfacebookの
RHEL6系/CentOS6系から、selinuxの管理下にあるファイルにはファイルパーミッションにdot「.」がつくようになってます。 [root@localhost ~]# ls -ld /etc drwxr-xr-x. 57 root root 4096 Jan 4 13:21 /etcselinuxを無効化しても、元々あったファイルにはドットがついたままなので、 なんか気持ち悪い感じ…。 いろいろ調べたら、ファイルの拡張属性security.selinuxが残ってるのが原因っぽいです。 Easy way to remove SELinux permissions? centos - Why does getfattr not display anything for a file that has the extended attribute bit set? - Server F
最近、短期間に大量のサーバに設定をいれるという仕事がたんまりきていて、とてもじゃないけど手作業なんてしんどいので、ちまちまと使い捨てスクリプトを書いて作業を楽にしてます。 そんな中『これは使える!』というスニペットを残しておきます。 seqコマンド seqコマンドは順番で数字を出力するだけなんですが、使い勝手よくてちょくちょく使ってます。 $ seq 3 #1から3までの整数を出力 1 2 3 $ seq 2 5 # 2から5までの整数を出力 2 3 4 5 $ seq 4 2 8 # 4から2ずつ8まで出力 4 6 8 $ seq -w 5 100 # -wをつけると桁の幅を同じにできる 005 006 007 009 010 ... ... 100 $ seq -s " " 5 # -sで区切り文字を指定できる 1 2 3 4 5 $ seq -f "hoge%02g.log" 3 #
Vagrantは、Virtual BoxのVM(仮想サーバ)管理を簡単にするためのツールです。 VMを、コマンドラインから起動、停止、削除、etcできるので、テストや開発環境作成などでかなり重宝します。 今回はそのテンプレートになるBase Boxを作ってみたので、メモを残しておきます。 VagrantのBase Box作成を自動化するVeeweeというツールもありますが、 使ってみてうまくいかなかったので、今回は自分で作ります…。 今回試した環境はこんな感じ。 OS(Mac) 10.8.2 Virtual Box 4.2.6 Vagrant 1.0.5 ※Virtual BoxとかVagrantのインストールなどは、今回省略します。 VMは、CentOS6.3 x86_64です。 Virtual BoxのVM作成 まず、Virtual BoxのVMを作ります。 VMは下記のような感じで作
久々のblog更新。 日本Chef User会のFacebookで紹介されている Chefのハンズオントレーニングイベントに参加してきました。 Japan Chef Users Group | Facebook トレーニングの講師は、Opscode社のSean OMeara 氏。 全部英語でしたが、(たぶん)普段普通に話すよりゆっくり話てくれてたのと、 周りのスタッフの方々が通訳してくださって、内容は大体把握できました。 ただ、やっぱり質問は流暢な英語でしたかった(´・ω・`) また、対象者がChefをさわった事がある方 (初級の上〜中級の下)でしたが、 なぜConfiguration Managementが必要なのか、なぜChefなのかとか、 割りと基本的な話を最初にしてくれて内容整理できてよかったです。 以下、自分が気になったところのまとめです。 cookbookのテストについて Ch
SaltStackは、大量のサーバを管理運用するためのリモート制御・設定管理ツールです。 capistranoなどのリモート制御ツールとpuppet, chefなどの設定管理ツールを合わせたようなものという印象です。 pythonで書かれてます。 http://saltstack.org/ インストール まずは、インストールから。saltstackは、以下のものに依存があります。 Python 2.6 ZeroMQ >= 2.1.9 pyzmq >= 2.1.9 - ZeroMQ Python bindings M2Crypto - Python OpenSSL wrapper PyCrypto - The Python cryptography toolkit msgpack-python - High-performance message interchange format YAM
仮想化技術が進歩し、大量のサーバを管理・構築することが多くなりました。 PuppetやChefなど、サーバ構築・管理を自動化するいろんなツールがあるので、 整理しておこうと思います。 以下の3つに分類します。 Provisioning Tools kickstart cobbler crowbar spacewalk BIOS設定、PXEブート、kicskstartなど、一番下のレイヤーのOSインストールまでを行うツールです。 Configuration Management Tools puppet chef saltstack rundeck and more... http://en.wikipedia.org/wiki/Comparison_of_open_source_configuration_management_software パッケージ管理や設定ファイルの配布など、OS
このページを最初にブックマークしてみませんか?
『tkak's tech blog』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く