タグ別アーカイブ: Chef

Chef Meetup Sapporoの第一回イベント「Chef Casual Talks Sapporo Vol.1」を行いました

 

だいぶ時間が経ってしまいましたが…

タイトルのとおり、先日、「Chef Meetup Sapporo」の第一回イベント「Chef Casual Talks Sapporo Vol.1」を行いました。

 

Tokyo、Kansaiのイベントに便乗させてもらっての突発開催で、

おおっぴらに宣伝しなかったのもあり、

参加人数は少なかったのですが、

そこで発表したスライドがバズったりして、

東京や関西のアーリーアダプタなWEB系のエンジニアには浸透しきった感のあるChefも、

SIerや地方のエンジニア等のアーリーマジョリティ的な層にはまだまだこれからということが分かって良かったです。

そういった層にリーチしていけるように頑張って行きたいです。

(そのためには1人じゃ厳しく、身近にガチで使ってる仲間がほしい所なので、まずそこから…)

 

ちなみに、別にChefを広めたいみたいな慈善事業的な公正明大的な目的というわけではなく、

札幌という地方都市に、Chefとかそういう旬な話がガチでできるインフラエンジニアのクラスタを作りたいっていうことなので、

その辺りに興味があったり賛同していただける方からのコンタクトをお待ちしております:)

 

 


fabricでchef-soloの実行環境を整えてみる

AWS環境を除き、SSHアカウントがパスワードでの管理がメインとなっている今の職場環境にて、

chef-soloを実行する上でまず最初にクリアすべき、

sudo権限のあるSSHキーファイルでログインできるユーザの作成と、

chef-solo実行環境を整えて、あとはレシピを適用するだけ!な状態を作る作業を自動化すべく、

fabricで実装してみました。

 

環境はCentOS6.4(x86_64)です。

 

fabricを実行する環境ではchef-solo,knife-solo環境が整っていることが前提です。

 

↓こんな感じです。

import cuisine
from fabric.api import run, cd, abort, require, sudo, env, put, prompt, get, local
from fabric.decorators import runs_once, roles
from fabric.contrib.console import confirm

env.user = ''
env.password = ''
env.hosts = ['']

def prepare_chef():
    sudo('useradd chefuser')
    sudo('passwd -fu chefuser')
    sudo('ssh-keygen', user="chefuser")
    sudo('cat /home/chefuser/.ssh/id_rsa.pub >> /home/chefuser/.ssh/authorized_keys', user="chefuser")
    get('/home/chefuser/.ssh/id_rsa', '~/' + env.host + '.pem')
    sudo('chmod 600 /home/chefuser/.ssh/authorized_keys')
    sudo('echo "chefuser ALL=(ALL) ALL" >> /etc/sudoers')
    local('chmod 600 ~/' + env.host + '.pem')
    local('knife solo prepare chefuser@' + env.host + ' -i ~/' + env.host + '.pem')

実行すると、ホームディレクトリ下に接続先.pemというSSHキーファイルができるので、

レシピを適用する場合はそれを利用します。

 

SSHキーの生成時に対話入力を求められてしまうので、

そこも自動化したいのですが、

未熟故にexpect使うくらいしか方法が思い浮かびません・・・

 


自動化について。愚痴っぽい独り言 ※一部不適切な発言を含みます

少し不適切な発言をします。

僕はまだまだヒヨッコであり、できないこともたくさんあります。
以下に書かれていることは勢いに任せて完全に自分を棚に上げています。
もし読む場合は、生温かい目で読んでやってください。

このところ、意識の低い・できない人達に
「なんでそんなこともできない(分からない)の?何年エンジニアやってるの?バカなの?死ぬの?」

また、何故偉い人達の大半は、
「意識の低い・できない人達の尻拭いをしている人が居るからこそ成り立っている現状を顧みないのか?」

…とイライラしていました。
(今もまだ少ししています)

ですが、最近思うのです。

そういう人達が何かしてくれることを期待するからイライラするのであって、
自分はエンジニアなのだから、
誰もやってくれないならシステムにやってもらえば良いんです。
そういうシステムを作れば良いんです。

「期間が短い」「人が足りない」と嘆いても、
どうやっても人と時間は作れません

でも、人がやっていた作業を自動化して時間に余裕を作ることはできます。

ある程度のものであれば誰でも安定して作れるような枠組みを作って、
1人あたりの効率を上げることができます。

後者はそう簡単にはできませんが、
前者はそう難しいことではありません。

というわけで、
個人的にcheffabricのお勉強中です。
fabricは大分分かってきたので、
近いうちにまとめておきたいです。

これらを使いこなせば、きっと作業量が減ることでしょう(主に自分のw)

カタログスペックを語っても、
有効性が証明できなければ意味が無いので、
今はあくまで個人的にお勉強中です。