debian
2010年11月24日
仮想環境にVLANを導入する為の準備
▼検証環境
- Ubuntu 10.04.1 LTS
- Linux 2.6.35-22-server
▼設定項目
- 物理NIC名: eth0
- VLAN ID: 100
事前準備
▼必須パッケージをインストール
$ sudo apt-get install vlan
作業内容
▼システム起動時に読み込むモジュールに「8021q」を追加
$ sudo vi /etc/modules > 8021q
▼一時的に動的反映
$ sudo modprobe 8021q $ lsmod | grep 8021q
次回のシステム起動時には/etc/modulesに追記されているのでmodprobeコマンドを実行する必要はない
▼eth0にVLAN ID 100を認識させる
$ sudo vi /etc/network/interfaces > auto eth0.100 > iface eth0.100 inet manual > up ifconfig eth0.100 up
▼ネットワーク設定再起動
$ sudo /etc/init.d/networking restart ...(省略)... Set name-type for VLAN subsystem. Should be visible in /proc/net/vlan/config Added VLAN with VID == 100 to IF -:eth0:- ...(省略)...
今回はinterfaceを追加するのが目的なので、IPアドレスの設定はしてない。
2010年10月01日
サーバ用途には日本語が邪魔
忘れないように自分向けメモ。
意図せず日本語環境になっていてビックリする事が時々ある。
Debian系のシステム環境を変更するには、/etc/default/配下のファイルを修正。
▼検証環境
- Ubuntu 10.04 LTS
▼/etc/default/localeを修正
$ sudo vi /etc/default/locale LANG="en_US.UTF-8"
日本実業出版社
売り上げランキング: 11300
2010年05月27日
ジョブ処理しないので、Hinemos Agent不必要
『Hinemos』を監視システムとして利用したい。
この場合、Hinemos Agentを利用したジョブ処理は不用。
Hinemos Agentはインストール不用で、snmpdの設定さえあれば良い。
「果たして、Hinemosを使う意味があるのか…?」と言う事は、今回の議論の対象外とする。
▼動作実績環境
- Amazon EC2
- Ubuntu 8.04 LTS(x86_64)
- Linux 2.6.24-6-xen
- Hinemos 3.1.4
- snmp 5.4.1~dfsg-4ubuntu4.3
作業内容
監視対象ノード
▼snmpdインストール
$ sudo apt-get -y install snmpd
▼使用IPアドレスを変更
$ sudo cp -pi /etc/default/snmpd /etc/default/snmpd.0 $ sudo vi /etc/default/snmpd $ diff /etc/default/snmpd.0 /etc/default/snmpd 11c11,12 < SNMPDOPTS='-Lsd -Lf /dev/null -u snmp -I -smux -p /var/run/snmpd.pid 127.0.0.1' --- > #SNMPDOPTS='-Lsd -Lf /dev/null -u snmp -I -smux -p /var/run/snmpd.pid 127.0.0.1' > SNMPDOPTS='-Lsd -Lf /dev/null -u snmp -I -smux -p /var/run/snmpd.pid 0.0.0.0'
▼managerからシステム情報を取得可能に設定変更
$ sudo cp -pi /etc/snmp/snmpd.conf /etc/snmp/snmpd.conf.0 $ sudo vi /etc/snmp/snmpd.conf $ diff /etc/snmp/snmpd.conf.0 /etc/snmp/snmpd.conf 61,62c61,62 < com2sec paranoid default public < #com2sec readonly default public --- > #com2sec paranoid default public > com2sec readonly default public
▼snmpd再起動
$ sudo /etc/init.d/snmpd restart
Hinemos Manager
▼システム情報取得可能かどうかを確認
$ snmpwalk -v 1 -c public [ 監視対象IPアドレス ] .1.3.6.1
※HOST情報を取得出来れば良い
あと書き
今回は、Amazon EC2のセキュリティグループ設定があるのでsnmp接続許可設定を無視している。
その他環境では、snmp接続の許可・拒否を考慮すべき。
2009年02月28日
さくらレンタルサーバでDebianを使うの続き
chroot環境構築時の方針は下記のものとする
- host環境は可能な限り手をつけない
- デーモンプロセスはdaemontoolsで管理する物とする
- host環境用sshとguest環境用sshをそれぞれ用意する
作業内容
作業対象を明確化するため、プロンプトで示す
| プロンプト | 内用 |
|---|---|
| debian | Debianがインストールされている別サーバ |
| host | chroot呼び出し元 |
| guest | chroot環境下 |
chroot環境構築下準備
debian環境にてchrootツリーを作っておく
debian$ mkdir sid debian$ sudo /usr/sbin/debootstrap sid sid debian$ sudo tar zcvpf sid.tar.gz sid debian$ scp sid.tar.gz admin@192.0.2.205:~/
host環境にてchroot用ディレクトリ作成
host$ su host# cd /home host# mkdir -p chroot/debian host# cd chroot/debian
debianツリーを伸長
host# tar zxvpf sid.tar.gz
子環境用に必要な物をマウント
host# mount -t proc proc /home/chroot/debian/sid/proc host# mount -t devpts devpts /home/chroot/debian/sid/dev/pts host# mount -o bind /dev /home/chroot/debian/sid/dev host# mount -o bind / /home/chroot/debian/sid/mnt
リゾルバ設定
host# cp -pi /etc/resolv.conf sid/etc/.
パッケージを更新
guest# export PATH=/bin:/usr/bin:/sbin:/usr/sbin guest# apt-get update guest# apt-get dist-upgrade
daemontools起動設定
guest# apt-get install daemontools guest# exit
host# vi /etc/inittab SV:123456:respawn:/usr/sbin/chroot /home/chroot/debian/sid /usr/bin/svscanboot
host# /sbin/telinit q
親環境のhttpdを停止
host# /sbin/chkconfig --list httpd httpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off host# /sbin/chkconfig --del httpd host# /sbin/chkconfig --list httpd service httpd supports chkconfig, but is not referenc
OpenSSH設定
guest# apt-get install openssh-server guest# apt-get install ucspi-tcp
guest# cd /etc/service guest# ./addsv.sh ssh guest# cd .ssh; pwd guest# vi run
※addsv.shはdaemontoolsの/service/に、サービスを追加するスクリプト「addsv.sh」 を参照。
#!/bin/sh
PATH=/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin
export PATH
exec 2>&1
sleep 3
exec envdir ./env sh -c '
/usr/bin/tcpserver -HRDl0 -x ./tcp.ssh.cdb \
-u 0 -g 0 0 ${PORT:-2022} /usr/sbin/sshd -i -e
'
guest# mkdir env guest# echo 2022 > env/PORT
guest# echo :allow > tcp.ssh guest# tcprule ./tcp.ssh.cdb ./tcp.ssh.tmp < ./tcp.ssh guest# cd ../; pwd guest# mv -i .ssh ssh
これ以降の作業は2022番ポートを指定してssh接続。
必要に応じてパッケージをインストールして行く。
まとめ
- hostのinittabにてguestのsvscanを実行するのがポイント
- chrootのツリーを他サーバへ持っていけば簡単に論理移転可能と言うメリットがある
2009年02月15日
2008年10月02日
coLinuxでDebian
先日、OSをクリーンインストールした。
それに伴いcoLinuxの環境構築。
Debianのイメージを改めてダウンロードして環境構築。
どうもUTF-8の表示処理が上手くいかない。
最初はlocaleの設定が何もない事を思い出す。
久し振りの作業なので、すっかり忘れていた。
設定作業
localesインストール
$ sudo apt-get install localeslocale対象リスト作成
$ sudo vi /etc/locale.gen ja_JP.UTF-8 UTF-8locale生成
$ sudo /usr/sbin/locale-gen環境変数設定
$ export LC_ALL=ja_JP.EUC-JP
2008年07月18日
IPアドレスから位置情報を取得したい
GeoIP City Geolocationを使うとIPアドレスから位置情報を取得可能。
無料版と有料版があり、無料版は位置情報の精度が低い。
今回は無料版で実験。
環境構築
必要なパッケージをインストール
$ sudo apt-get install libgeoip1 libgeoip-devGeo::IPをダウンロードしてdebパッケージ化
※etchでは1.33のbuildに失敗したので1.27を採用。
$ wget http://www.maxmind.com/download/geoip/api/perl/Geo-IP-1.27.tar.gz $ tar zxvf Geo-IP-1.27.tar.gz $ dh-make-perl --build Geo-IP-1.27 $ sudo dpkg -i libgeo-ip-perl_1.27-1_i386.debGeoLiteCity.datをダウンロード
$ wget http://www.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz $ gunzip GeoLiteCity.dat.gzサンプルプログラム
#!/usr/bin/perl
use strict;
use warnings;
use Geo::IP;
my $name = shift;
my $geo = Geo::IP->open('./GeoLiteCity.dat', GEOIP_STANDARD);
my $geoip = $geo->record_by_name($name);
exit 1 unless $geoip;
map { print $_ .":\t". $geoip->$_ ."\n" }
qw/country_code country_name city region postal_code
latitude longitude dma_code area_code/;
1;
実行例$ ./geoip-lookup.pl www.google.com country_code: US country_name: United States city: Mountain View region: CA postal_code: 94043 latitude: 37.4192 longitude: -122.0574 dma_code: 807 area_code: 650
位置情報を取得した後、どうする?
Google Maps APIで位置情報を指定して地図を表示する。
これをやりたかった。
オライリー・ジャパン
売り上げランキング: 53996
2008年06月23日
DebianにCentOS4の仮想環境を作ろう
コマンドが異常終了した。
$ sudo xen-create-image --install-method rinse --dist centos-4 --hostname centos4
早速ログ確認すると、
何てこった…参照先が存在しない。
どこかに設定ファイルがあるはずなので探してみる。
debian$ cd /etc/ debian$ grep http://anorien.csc.warwick.ac.uk/ -r . -l 2>/dev/null ./rinse/rinse.confなるほど。
ミラーサイト設定を変更
$ cd /etc/rinse $ sudo cp -pi rinse.conf rinse.conf.0 $ sudo vi rinse.conf
$ diff rinse.conf.0 rinse.conf 14,15c14,15 < mirror = http://anorien.csc.warwick.ac.uk/mirrors/centOS/4.6/os/i386/CentOS/RPMS/ < mirror.amd64 = http://anorien.csc.warwick.ac.uk/mirrors/CentOS/4.6/os/x86_64/CentOS/RPMS/ --- > mirror = http://ftp.riken.jp/Linux/centos/4.6/os/i386/CentOS/RPMS/ > mirror.amd64 = http://ftp.riken.jp/Linux/centos/4.6/os/x86_64/CentOS/RPMS/ 19,20c19,20 < mirror = http://anorien.csc.warwick.ac.uk/mirrors/centos/5/os/i386/CentOS/ < mirror.amd64 = http://anorien.csc.warwick.ac.uk/mirrors/centos/5/os/x86_64/CentOS/ --- > mirror = http://ftp.riken.jp/Linux/centos/5/os/i386/CentOS/ > mirror.amd64 = http://ftp.riken.jp/Linux/centos/5/os/x86_64/CentOS/これで上手く行った。
まとめ
環境
- Domain0がDebian
- DomainUをCentOSとする場合
- つまり、install-methodをrinseとする場合
解決方法
- /var/log/xen-tools/を確認
- ミラー先に問題がある場合は/etc/rinse/rinse.confを変更
- 再度xen-create-imageを実行して確認
2008年05月28日
2008年05月21日
WindowsとcoLinux間のファイルやり取りが多い
作業の都合で
coLinux上のファイルをWindowsへの移動が何度も行われている。
WinSCPでファイル操作してみたけど、どうも効率が悪い。
そこで考えた解決の1つがSambaの利用。
環境整理
| Debian | lenny/sid | |
| colinux | IPアドレス | 192.168.0.10 |
| 作業アカウント | colinux | |
| ホームディレクトリ | /home/user/colinux/ | |
$ sudo apt-get install samba $ sudo vi /etc/samba/smb.conf [global] > security = share > [colinux] > comment = colinux home > path = /home/user/colinux > read only = no > guest ok = yes $ sudo /etc/init.d/samba restartあとはエクスプローラーで「\\192.168.0.10\」へアクセス。
フォルダ名「colinux」が現れていれば成功。
作業効率が上がった。

