2011年4月6日水曜日

Djangoで外部からモデルを使う

Djangoのモデルを外部スクリプトから参照する場合の設定。

PYTHONPATHを通した上で
from django.core.management import setup_environ
os.environ['DJANGO_SETTINGS_MODULE'] = 'PACKAGE_NAME.settings'
setup_environ(PACKAGE_NAME.settings)
これで普通にモデルをインポート出来る。

zshrc, vimrc, screenrc

GitHubに登録したものの、個人アカウントになにもリポジトリがない状態が続いていたので、とりあえず、zshrcvimrcscreenrcをアップしました。

zshrc: https://github.com/ikuyamada/zshrc
vimrc: https://github.com/ikuyamada/vimrc
screenrc: https://github.com/ikuyamada/screenrc

もういろんなところからコピペしすぎて、半分ワケが分からなくなってますけどね(笑

複数台のサーバでyum updateするスクリプト

Pythonのライブラリ「Fabric」を使って、複数台のサーバでyum updateする簡単なスクリプトを作ったので、ブログにします。(Linux GazetteというLinux関連のWebジャーナルに先日出したものです)
#!/usr/bin/env python2.6

from fabric.api import env, run, sudo
from fabric.contrib.console import confirm

env.warn_only = True

def update():
    if run("yum check-update").return_code != 0:
        if confirm("execute yum update?", default=False) == True:
            sudo("yum -y update", pty=True)
Fabricはeasy_install fabricとか打つと入ります。詳しい書き方は、記事に書いてあります。

PuppetでCentOSのタイムゾーンを設定

@shotawさんから教えてもらったテク。
Amazon EC2やLinodeなどで、ローカルタイムが異なっている場合にPuppetで一発で設定する書き方。
file { '/etc/localtime':
        ensure => link,
        target => "/usr/share/zoneinfo/Asia/Tokyo",
}
site.ppなどに書いて利用してくださいね。

2011年4月5日火曜日

Puppetでhostsを設定

Amazon EC2やLinode等のクラウドでサーバ間の通信にプライベートIPアドレスを使いたいが、DNSを内向き・外向き別々に設定をするのが面倒くさい場合、Puppetを使って/etc/hostsに一括設定すると便利。

設定はこのような感じ:
host { 'host1.ikuya.net':
    ip           => '192.168.10.10',
    host_aliases => [
        'alias1.ikuya.net',
    ],
    ensure       => present,
}
host { 'host2.ikuya.net':
    ip     => '192.168.10.11',
    ensure => present,
}
ついでにiptablesも設定。puppet-iptablesを使用。
iptables { 'allow private ips':
    source  => [
        '192.168.10.10',
        '192.168.10.11',
    ],  
    proto   => 'all',
    jump    => 'ACCEPT',
}