AnsibleでGentoo Linuxをインストールする
Gentoo Linux のインストールは、GUI インストーラが用意された他の多くの Linux ディストリビュージョンと違い、次のようなプリミティブな方法であることが知られています。
Gentoo Linux のインストールは、GUI インストーラが用意された他の多くの Linux ディストリビュージョンと違い、次のようなプリミティブな方法であることが知られています。
私が何か勘違いしてたようですが glibc-2.21-r2 (~amd64 マスクされてない)で patch が取り込まれてますね。。
# emerge -fOq glibc
>>> Fetching (1 of 1) sys-libs/glibc-2.21-r2::gentoo
# tar tf /usr/portage/distfiles/glibc-2.21-patches-7.tar.bz2 | grep 'CVE-2015-7547'
patches/00_all_0028-CVE-2015-7547-getaddrinfo-stack-based-buffer-overflo.patch
皆さまにおかれましては CVE-2015-7547 の対応お疲れ様です。
2015年も残す所あと数日ですね。今年はあと何回#gentooinstallbattleにエントリーできるでしょうか。Gentoo Linuxをインストールためには2つのアーカイブファイルをダウンロードします。
先週の話ですがssmjp 2015/09 の回におじゃましてきました。
「一緒にプロダクション環境での Gentoo 勉強会」やりましょう!という話を現実にしてくださった@usaturnさん、そして初参加&&初登壇&&Gentoo ネタという暴挙(?)を広い懐で受け入れてくださった #ssmjp の皆様、本当にありがとうございました!
会社ではほとんどのアプリケーションをScalaで開発しさくらのクラウドやハウジング環境で運用しているのですが、どんな言語で開発するにせよどのような環境で運用するにせよ、当然ながらアプリケーションはdeployする必要があります。
会社では相変わらずさくらのクラウド上で色々やっていますが、以前のGentooの記事が好評だったので今回も同じくGentooでいこうと思います!
今回は図のような構成でごく普通のGatewayサーバーを構築し、矢印で示したサーバーがインターネットに出られるようにします。
会社でSSHの公開鍵やSUDOの権限をLDAPで一元管理していっているのですが、忘れないうちにLDAPクライアント側の構築方法を書いてみます。
なお、サーバーはさくらのクラウド上で構築し、LDAPサーバーはldap1.example.comというFQDNでアクセスできるものとします。
# emerge -pvq xtrabackup-bin
[ebuild R ] dev-db/xtrabackup-bin-2.2.5
/usr/bin に innobackupex, xbcrypt, xbstream, xtrabackup がインストールされる。
quicklz.com から qpress をダウンロードして展開する。
# tar xvf qpress-11-linux-x64.tar -C /usr/local/bin/
# innobackupex --defaults-file=/etc/mysql/my.cnf --user=$USER \
--password=$PASS --ibbackup=xtrabackup --slave-info \
--safe-slave-backup --compress $TARGET_DIR
# innobackupex --user=$USER --password=$PASS --decompress $BACKUP_DIR
# innobackupex --user=$USER --password=$PASS --apply-log $BACKUP_DIR
# innobackupex --copy-back $BACKUP_DIR
# chown -R mysql:mysql /var/lib/mysql
Linuxサーバーを運用していて「Too many open files」に悩まされることがある。
デーモンプロセスに対して ulimit を設定したい場合、Gentoo では /etc/conf.d/ の設定ファイルに rc_ulimit を追加するだけで簡単に設定できる。
2月19日に新宿で開催された第14回さくらの夕べに参加して、LTをしてきた。
発表スライド: “VariablePrivateServicesOn #SakuraVPS AndLXCWith #Fluentd” by Hidenori Matsuki
懇親会で Fluentd の話題で盛り上がった。参加者の皆さんはすでに本番環境で Sakura Internet のサービスと合わせて Fluentd を活用していた。以下のプラグインが話題に上がった:
出先から自宅のPCへ接続したいという動機からさくらVPS上のGentoo LinuxをOpenVPNサーバーとして構築しました。Ethernet Bridgeモードを使用して、BonjourやAvahiで名前解決できるようにしています。
iscsitargetとglobalSAN iSCSIでベンチマーク取ってみました。
iMac5,1 / Mac OS 10.4.11 / 4096MB RAM / Xbench 1.3 で計測。
ターゲットのHDDはUDMA5で、100MbpsのHUBを経由しているのでそこがボトルネックになっています。
全部ReiserFSで。 オンラインで拡張できるから2GBでいいや。
# for p in Home Var Portage Tmp Opt; do lvcreate -n$p -L2G VG0; done
# for p in /dev/VG0/*; do mkreiserfs $p; done
結果はこんな感じ
# lvdisplay
--- Logical volume ---
LV Name /dev/VG0/Home
VG Name VG0
LV UUID PSpzkE-AmSp-EweF-f8lt-haH4-nZyK-L6mj9c
LV Write Access read/write
LV Status available
# open 0
LV Size 2.00 GB
Current LE 512
Segments 1
Allocation inherit
Read ahead sectors 0
Block device 253:0
--- Logical volume ---
LV Name /dev/VG0/Var
VG Name VG0
LV UUID YqA1cx-B72h-K71V-Cor4-h6AX-qBO6-Q3I20K
LV Write Access read/write
LV Status available
# open 0
LV Size 2.00 GB
Current LE 512
Segments 1
Allocation inherit
Read ahead sectors 0
Block device 253:1
--- Logical volume ---
LV Name /dev/VG0/Portage
VG Name VG0
LV UUID CICmO3-3Hnm-1K9e-gAfQ-aGRT-6F1f-XRw0aB
LV Write Access read/write
LV Status available
# open 0
LV Size 2.00 GB
Current LE 512
Segments 1
Allocation inherit
Read ahead sectors 0
Block device 253:2
--- Logical volume ---
LV Name /dev/VG0/Tmp
VG Name VG0
LV UUID nH0nGd-523t-Hr3u-eOod-3swt-KXeD-ALH4lH
LV Write Access read/write
LV Status available
# open 0
LV Size 2.00 GB
Current LE 512
Segments 1
Allocation inherit
Read ahead sectors 0
Block device 253:3
--- Logical volume ---
LV Name /dev/VG0/Opt
VG Name VG0
LV UUID msJKKf-2ISi-AkQ6-y4Ix-oZkb-4vG6-TnZ5UW
LV Write Access read/write
LV Status available
# open 0
LV Size 2.00 GB
Current LE 512
Segments 1
Allocation inherit
Read ahead sectors 0
Block device 253:4
# pvcreate /dev/md0
# vgcreate VG0 /dev/md0
vgdisplayの結果:
デフォルトのPEサイズで298GBの論理ボリュームを作成:
# lvcreate -nLV0 -L298G VG0
76288 PEが割り当てられて作成できました。
RAID1を構築しました。
# mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sda /dev/sdb
同期の進捗状況(01:09:02):
Personalities : [raid1]
md0 : active raid1 sdb[1] sda[0]
312571136 blocks [2/2] [UU]
[=>...................] resync = 6.8% (21260160/312571136) finish=60.1min speed=80701K/sec
完了(02:44:38):
Personalities : [raid1]
md0 : active raid1 sdb[1] sda[0]
312571136 blocks [2/2] [UU]
できた♪
LVMミラーの片方のディスクを外したらどうなるか実験してみました。
ReiserFSでフォーマットしてマウント:
# mkreiserfs /dev/vg/lvol0
# mkdir /mnt/disk1
# mount /dev/vg/lvol0 /mnt/disk1/
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 115G 2.7G 107G 3% /
udev 10M 216K 9.8M 3% /dev
none 251M 0 251M 0% /dev/shm
/dev/mapper/vg-lvol0 10G 33M 10G 1% /mnt/disk1
テストデータとチェックサムを作成:
ソフトウェアRAIDもメンドイな。と思ったので、LVMのMirrorに挑戦。
# lvcreate -m1 -L10G vg はできない。
Not enough PVs with free space available for parallel allocation.
Consider --alloc anywhere if desperate.
とかいわれる。
でも、# lvcreate -m1 -L10G --alloc anywhere vg とやったらやったで、