Screen のログ機能とログファイルの閲覧
参考:http://d.hatena.ne.jp/yanma_4/20080330/1206803656
screen のログ機能は2種類ある。
コマンド | 意味 |
---|---|
^Z H | ログ保存のON/OFFトグル |
^Z h | これまでのハードコピーを保存する |
^Z : hardcopy filename | これまでのハードコピーをfilenameに保存する |
^Z H は制御文字も込みで入出力を記録する。
^Z h はスクリーンに表示された状態を記録する。
で、常にログを取るためには .screenrc に以下の2行を追加
#自動ログ保存 logfile "/home/username/log/screen-%Y%m%d-%n.log" deflog on
これで、日付&ウィンドウ毎にログが取られるはず。。。
ついでに bash のPS1をいじくって、時間を表示するようにした。
これで、あとからログを参照とき実行した時間も一発でわかる。
PS1="\n\[\e[0;35m\]\u@\h\[\e[01;31m\](\t)\[\e[00m\]:\[\e[0;33m\]\w\[\e[00m\]\n\$ "
これで、以下のように表示される(実際は色つき)。
koba@javachallenge(01:59:21):~ $
ただ、制御文字も記録するので、普通に less で見るととても見辛い。
いろいろ調べると、以下のように-r(-R?)オプションを付けるといいっぽい。
less -R log/screen-20110913-0.log
ーr と ーR の違いはいまいち分からないけれど、ーr だと制御文字を処理するため表示されず、ーR だと制御文字を処理せず表示する感じっぽい。
コピペで他の人に見せるなら ーr のほうがいいのかな。
一般ユーザでSRPMからRPMを作成するための準備
前後するけど
前回の、 screen 4.1 インストール の準備のための設定を。
参考:http://wiki.poyo.jp/read/Writing/misc/linux/rpm_de_php/06.Make%20Simple%20PHP
デフォルトでは、/usr/src/redhat/ でビルドしたりする。
でも、それでは一般ユーザでは Permission Denied だし、root で rpm の作成とかしたくはない。
rpmbuild コマンドはホームディレクトリに「.rpmmacros」が存在するときはそのファイルを参照する。
そこにrpm 作成用ディレクトリを記述してやる。
そして、そのディレクトリ以下にBUILD,RPMS,SOURCES,SPECS,SRPMSディレクトリを作成。
手っ取り早く、以下のコマンドを打つ。
$ echo "%_topdir $HOME/rpmbuild" > ~/.rpmmacros $ mkdir -p ~/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS}
これで、安心して rpm 作り放題。
screen 4.1 インストール
SRPMからインストール。
参考1:http://gajumaru.ddo.jp/wordpress/?p=168
参考2:http://blog.remora.cx/2010/04/gnu-screen-on-centos-54.html
まず準備。
screenのコンパイルには、autoconf-2.6.0 以上が必要。
さらに、autoconf-2.6.0 のコンパイルには、emacs と m4-1.4.7 以上が必要。
というわけで、Fedora15のリポジトリからSRPMをダウンロードしてインストール。
http://ftp.riken.go.jp/Linux/fedora/releases/15/Fedora/source/SRPMS/
$ sudo yum install emacs $ cd SRPM $ wget http://ftp.riken.go.jp/Linux/fedora/releases/15/Fedora/source/SRPMS/m4-1.4.16-1.fc15.src.rpm $ rpm -ivh --nomd5 m4-1.4.16-1.fc15.src.rpm $ wget http://ftp.riken.go.jp/Linux/fedora/releases/15/Fedora/source/SRPMS/autoconf-2.68-2.fc15.src.rpm $ rpm -ivh --nomd5 autoconf-2.68-2.fc15.src.rpm $ cd ../SPECS $ rpmbuild -ba m4.spec
で、perl-develがないとエラー。
しかし、 CentOS には perl-devel というパッケージはない。
参考3:http://www.02.246.ne.jp/~torutk/linux/centos5/packages.html
上記によると、CentOS では、perl に perl-devel 相当のものが入っているとのことなので、autoconf.spec の perl-devel 部分を書き換え。
$ rpmbuild -ba m4.spec
で、またエラー。
参考4:http://d.hatena.ne.jp/taknya/20110720/1311164282
tar が、tar.xz 形式を解凍できないのが問題の様子。
ふたたび、autoconf.spec SOURCE のファイル形式を tar.gz に変更。
さらに、SOURCE フォルダに手動でファイルをダウンロード。
無事、rpm ができたので、アップデート。
$ cd ../SOURCE $ wget http://ftp.gnu.org/gnu/m4/m4-1.4.16.tar.gz.sig $ wget http://ftp.gnu.org/gnu/m4/m4-1.4.16.tar.gz $ rpmbuild -ba m4.spec $ cd ../RPMS/x86_64/ $ sudo rpm -Uvh m4-1.4.16-1.x86_64.rpm
autoconf も、基本一緒なので、省略。
そして、screen も同じようにインストール。
wget http://ftp.riken.go.jp/Linux/fedora/releases/15/Fedora/source/SRPMS/screen-4.1.0-0.3.20101110git066b098.fc15.src.rpm rpm -ivh --nomd5 screen-4.1.0-0.3.20101110git066b098.fc15.src.rpm cd ../SPECS/ rpmbuild -ba screen.spec
pam-devel と libutempter-devel が必要といわれるので、こっちは yum からインストール。
sudo yum install pam-devel.x86_64 libutempter-devel.x86_64 rpmbuild -ba screen.spec cd ../RPMS/x86_64/ sudo rpm -Uhv screen-4.1.0-0.3.20101110git066b098.x86_64.rpm
インストール完了。
めでたし、めでたし。
Vim7.3インストール
参考1:http://blog.dc-d.jp/?p=549vim7.1をCentOS 4に入れてみた。
参考2:http://d.hatena.ne.jp/janus_wel/20110105/1294213885Vim 7.3 on CentOS 5.5 once more
参考3:http://takus.me/computer/vim/centos-5-vim-install/CentOS 5.5 に最新版の Vim をインストール
$ wget http://ftp.vim.org/pub/vim/unix/vim-7.3.tar.bz2 $ tar -jxf vim-7.3.tar.bz2 $ cd vim73/ $ mkdir patches $ cd patches/ $ curl -O http://ftp.vim.org/pub/vim/patches/7.3/7.3.[001-289] $ cd .. $ cat patches/7.3.* | patch -p0 $ sudo yum install ncurses-devel.x86_64 $ ./configure --enable-multibyte --enable-xim --enable-fontset --with-features=huge --prefix=/usr/local --disable-selinux --disable-gui --without-x $ make $ sudo checkinstall -R $ sudo rpm -e vim-enhanced vim-common $ sudo rpm -Uvh --nomd5 vim73-20110829-1.x86_64.rpm
epel リポジトリ追加
参考1:http://d.hatena.ne.jp/t2y-1979/20110430/1304140587
参考2:http://network.station.ez-net.jp/os/linux/update/repository.epel/centos/5.5.asp
$ sudo rpm -ivh http://download.fedora.redhat.com/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm
コマンド一発。
ちなみに、x86_64アーキテクチャの場合。
/etc/yum.repos.d/epel.repo を書き換えてデフォルトオフ。
インストール時は、 --enablerepo=epel で有効化。
Cobbler 環境構築で Fedora15 を自動インストール
前回、Fedora15 の distro と profile のインポート及び、ローカルリポジトリの構築が完了。
今回は、 ks ファイルをいじくって、自動インストールの構成内容を記述する。
Fedora15をインポートした時点で、kickstartファイルとして、/var/lib/cobbler/kickstarts/sample_end.ks が自動的に設定されている。
このサンプルを元に書き換えていく。
$ sudo cp /var/lib/cobbler/kickstarts/{sample_end.ks,Fedora15-x86_64.ks} $ sudo vi /var/lib/cobbler/kickstarts/Fedora15-x86_64.ks
# kickstart template for Fedora 8 and later. # (includes %end blocks) # do not use with earlier distros #platform=x86, AMD64, or Intel EM64T # System authorization information auth --useshadow --enablemd5 # System bootloader configuration bootloader --location=mbr # Partition clearing information clearpart --all --initlabel # Use text mode install text # Firewall configuration firewall --disable # Run the Setup Agent on first boot firstboot --disable # System keyboard keyboard jp106 # System language lang en_US.UTF-8 # Use network installation url --url=$tree # If any cobbler repo definitions were referenced in the kickstart profile, include them here. $yum_repo_stanza # Network information $SNIPPET('network_config') # Reboot after installation reboot #Root password rootpw --iscrypted $default_password_crypted #add user $SNIPPET('add_user') # SELinux configuration selinux --disabled # Do not configure the X Window System # skipx xconfig --startxonboot # System timezone timezone Asia/Tokyo # Install OS instead of upgrade install # Clear the Master Boot Record zerombr # Allow anaconda to partition the system as needed autopart %pre $SNIPPET('log_ks_pre') $kickstart_start $SNIPPET('pre_install_network_config') # Enable installation monitoring $SNIPPET('pre_anamon') %end %packages $SNIPPET('func_install_if_enabled') $SNIPPET('package_lists') %end %post $SNIPPET('log_ks_post') # Start yum configuration $yum_config_stanza # End yum configuration $SNIPPET('post_install_kernel_options') $SNIPPET('post_install_network_config') $SNIPPET('func_register_if_enabled') $SNIPPET('download_config_files') $SNIPPET('koan_environment') $SNIPPET('redhat_register') $SNIPPET('cobbler_register') # Enable post-install boot notification $SNIPPET('post_anamon') # Start final steps $kickstart_done # End final steps %end
変更点は以下のとおり、
- firewall 無効化
- 日本語キーボード
- en_US → en_US.UTF-8
- $SNIPPET('add_user')設定(後述)
- 起動時にGUIログイン画面を表示するように設定( xconfig --startxonboot )
- タイムゾーン変更
- %packages に $SNIPPET('package_lists') 追加(後述)
kickstartファイルの設定について
参考1:http://www.linuxmania.jp/kickstart.html
参考2:http://fedoraproject.org/wiki/Anaconda/Kickstart
参考3:http://docs.redhat.com/docs/ja-JP/Red_Hat_Enterprise_Linux/5/html/Installation_Guide/ch-kickstart2.html
$SNIPPET('add_user') について
cobbler にはスニペットという機能がある。
kickstart 内の共通部分を抜き出してモジュール化した物。
ここでは、管理ユーザ追加用のスニペットを作成する。
$ sudo vi /var/lib/cobbler/snippets/add_user
user --name=admin --groups=wheel --gecos="Admin User" --iscrypted --password=$1$Q9QuRBrc$N8HNqiAu6/a1N/r.FxzOn/
user オプションについては↑の参考2内に詳しく書いてある。
ユーザ名がadminでwheelグループに所属するユーザを作成。
$SNIPPET('package_lists') について
また、スニペットは設定を共通化した上で、distro、profile、system 毎に設定を上書きできる。
具体的には、以下のようにな順序でスニペットファイルを探してくる。
/var/lib/cobbler/snippets/per_system/$snippet_name/$system_name /var/lib/cobbler/snippets/per_profile/$snippet_name/$profile_name /var/lib/cobbler/snippets/per_distro/$snippet_name/$distro_name /var/lib/cobbler/snippets/$snippet_name
package_lists という共通スニペットを作り、さらにインポートしたディストリ用のスニペットを作る。
# あんまり意味ないけど。
$ sudo touch /var/lib/cobbler/snippets/package_lists $ sudo vi /var/lib/cobbler/snippets/per_distro/package_lists/Fedora15-x86_64
@admin-tools @base @core @development-tools @editors @fonts @gnome-desktop @graphical-internet @hardware-support @input-methods @online-docs @base-x xfsprogs mtools gpgme lua emacs gvfs-obexftp hdparm iok gdm -evolution -empathy -nspluginwrapper -transmission-gtk -icedtea-web -evolution-NetworkManager
インストールするパッケージは、cobbler 環境用に設定した Fedora の ks ファイルから流用。
profile に作成した ks ファイルとリポジトリを登録。
さらに、実際にインストールするシステム毎の(ネットワーク)設定を追加。
今回、IPアドレスをstaticで設定するようにしたので、前回設定したDHCP機能をオフ。
ついでに以下のようにsettingsを変更。
- IP を DHCP でなくstatic に設定するため、DHCPマネージャをオフ
- 登録したリポジトリをインストール後、/etc/yum.repo.d/以下に登録しない
- インストール後 pxe ブートしない
$ sudo cobbler profile edit --name=Fedora15-x86_64 --repos="Fedora15-x86_64 Fedora15-x86_64-updates" --kickstart=/var/lib/cobbler/kickstarts/Fedora15-x86_64.ks $ sudo cobbler system add --name=<インストールするマシンのMACアドレス> --ip=192.168.135.10 --hostname=test --static=1 --gateway=192.168.135.1 --subnet=255.255.255.0 --profile Fedora15-x86_64 $ sudo vi /etc/cobbler/settings
・・・ manage_dhcp: 0 ・・・ pxe_just_once: 1 ・・・ yum_post_install_mirror: 0 ・・・
参考5:https://fedorahosted.org/cobbler/wiki/ManageDhcp
参考6:http://blog.tnmt.info/2011/07/06/scientific-linux-kvm-with-cobbler-koan/
参考7:http://www.cafechantant.com/trac/wiki/cobbler_install_on_centos5
ちなみに、pxe_just_onceで pxe からブートしなくなった system は以下のコマンドで再び有効にできる。
$ sudo cobbler system edit --name=<name> --netboot-enabled=1
設定が済んだら、ファイル全体を更新。
$ sudo cobbler sync
sudo cobbler profile getks --name=<プロファイル名> でそのプロファイルの kickstart ファイルを確認できる。
そして、マシンを起動。地味に感動。