By ribbon @
2016-05-06 22:40
autoyastを使って自動インストールをしようとしていますがうまくいきません。普通にインストールするとき、インストールした状況を/root/autoinst.xml というファイルに書き込むように指示出来るのですが、そのファイルを自動インストール時に使ってもインストール途中に、パッケージの依存関係解決に失敗します。
そもそも、インストールパッケージに不要なものが入ってしまいます。たとえばこんな感じで、本来DVDに入っていないパッケージが入ってしまっています。
試しにこれらのファイルを手でautoinst.xml から取り除いても結果は同じでした。途中でこんな感じになります。
bashはインストールされ、存在するパッケージなのですが、なぜか依存関係が破綻していると思われています。理由は謎です。
Category
openSUSE,
Tips,
サーバ |
受け付けていません
By ribbon @
2016-04-23 23:00
前回(http://blog.geeko.jp/ribbon/1296) では、途中までしかうまくいきませんでしたが、その後いろいろとやってみて、ほぼうまくいくようになりました。
大まかな流れは、ipxe起動->pxelinux起動->autoyastによる自動インストールとなります。要するに、pxelinux を ipxeでキックしてあげる、ということになります。よってipxe起動以後の手順は、SUSEのマニュアルにある、自動インストールの説明とほぼ同じになります。
準備
◆1 dhcpの設定
前回と違い、ipxe起動ファイルをtftpのroot直下に置きました。こんな感じになります。
default-lease-time 14400;
subnet 192.168.10.0 netmask 255.255.255.0 {
range 192.168.10.101 192.168.10.127;
default-lease-time 14400;
max-lease-time 172800;
}
if exists user-class and option user-class = "iPXE" {
filename "boot.ipxe";
}
else {
filename "iPXE/undionly.kpxe";
}
next-server 192.168.10.41;
この設定により、iPXEが、OSを起動するための初期スクリプト boot.ipxeをダウンロードすることが出来ます。
◆2 boot.ipxe の準備
内容を整理し、以下のようにしました。
#!ipxe
:start
menu Please choose an operating system to install
item --gap openSUSE
item pxelinux pxelinux boot
item shell enter iPXE shell
item exit exit to BIOS
choose --default pxelinux --timeout 30000 target && goto ${target}
:pxelinux
boot http://192.168.10.41/pxelinux.0
boot || goto failed
:shell
echo Type 'exit' to get the back to the menu
shell
set menu-timeout 0
set submenu-timeout 0
goto start
:failed
echo Booting failed, dropping to shell
goto shell
◆3 pxelinxの準備
前回の失敗は、ipxeから起動するLinuxローダに、isolinuxを使用したことでした。これはISOしか見ないようで、ネットワークブートには対応していなかったようです。ネットワークブートに必要なのはpxelinuxなので、これを、/usr/share/syslinux/pxelinux.0 から /srv/tftpboot にコピーします。続いて、/srv/tftpboot配下にpxelinux.cfg ディレクトリを用意します。
◆4 ブート用ファイルの準備
SUSEの自動インストールの説明のように、linux initrd message biostest memtest を、インストールCDイメージから(たとえば/srv/tftpboot/install/leap42/CD1/boot/x86_64/loader/から)コピーします。
◆5 pxelinux.cfg/default ファイルの作成
pxelinuxが使う設定ファイルを用意します。基本的には インストールイメージ内にあるisolinux.cfgをコピーし、配下の以下のように用意しました。単なる自動起動だけであれば、不要な項目も多いですが….
default linux
# hard disk
label harddisk
localboot -2
# install
#label linux
# kernel linux
# append initrd=initrd splash=silent showopts
# install
label linux
kernel linux
append initrd=initrd splash=silent showopts install=http://192.168.10.41/install/leap42/CD1
# upgrade
label upgrade
kernel linux
append initrd=initrd splash=silent upgrade=1 showopts
# rescue
label rescue
kernel linux
append initrd=initrd splash=silent rescue=1 showopts
# mediacheck
label mediachk
kernel linux
append initrd=initrd splash=silent mediacheck=1 showopts
# memory test
label memtest
kernel memtest
#ui gfxboot bootlogo message
implicit 1
prompt 1
timeout 60
◆7 autoyast.xml を用意する
あらかじめ作成したautoyast.xml をインストールイメージに(この場合は、/srv/tftpboot/install/leap42/CD1/)コピーします。
◆8 起動する
まず、ipxeで起動すると以下の画面が出ます。
enterを押すか、タイムアウトまで待つと、ipxeがsyslinuxを起動します。
enterを押すか、タイムアウトまで待つと、openSUSEが起動します。そして、autoyast.xml が処理され、自動インストールが始まります。
ただ、手動でインストールしたautoyast.xmlが、なぜか不正なため、インストール処理は失敗します。
とりあえずここまで出来るようになりました。
Category
openSUSE,
未分類 |
受け付けていません
By ribbon @
2016-04-12 22:33
openSUSE mini sumitでも話ましたが、openSUSEを自動インストールしようとして試行錯誤しています。すべて仮想環境でテストしているのですが、なかなかうまくいきません。
仮想環境は、debian ベースの proxmoxVEを使っています。これが、なかなか便利で、Webベースで仮想マシンを立てたりつぶしたり、VNC経由で仮想マシンとサクッと繋がる、バックアップも取れる、やろうと思えば高可用性構成も取れるなど、便利な機能がてんこ盛りです。VMware ESXi と比べると、機能的に劣るところもありますが、個人ベースで使うには十分すぎるくらいです。
ただ、この仮想環境、ちょっと変わったところがあって、仮想OS用のBIOSに、iPXEが組み込まれているのですね。PXEではなくて。なので、ネットワークブートを行う時は、PXEのノウハウがあまり使えません。とりあえず、今やっていることをメモとして書いておきます。
準備
◆1 dhcpの設定
iPXEを使う時には、dhcpで、インストールサーバの情報を設定する必要があります。dhcpの設定はyastからも出来ますが、今回は直接 /etc/dhcpd.conf を設定しました。こんな感じになります。
default-lease-time 14400;
subnet 192.168.10.0 netmask 255.255.255.0 {
range 192.168.10.101 192.168.10.127;
default-lease-time 14400;
max-lease-time 172800;
}
if exists user-class and option user-class = “iPXE” {
filename “iPXE/boot.ipxe”;
}
else {
filename “iPXE/undionly.kpxe”;
}
next-server 192.168.10.41;
この設定により、iPXEが、OSを起動するための初期スクリプト boot.ipxeをダウンロードすることが出来ます。
◆2 tftpの設定
tftpの設定はyast から行います。特に標準のままで問題ありません。なお、tftpはxinetd配下から起動することになります。
◆3 httpdの設定
httpdを設定します。rootディレクトリは、/srv/tftpboot/install/ にします。
◆4 OSイメージの展開
yast の、インストールサーバ設定から、OSイメージを展開します。サブディレクトリは、leap42にしてみます。
◆5 OSイメージの配置
/srv/tftpboot 配下にOSのISOイメージを置きます。
◆6 boot.ipxe の作成
ひな形は、ここにあります。こんな感じになっています。
#!ipxe
menu Please choose an operating system to install
item –gap openSUSE
item isolinux isolinux boot
item efi efi boot
item iso iso boot
item –gap ipxe shell
item shell Drop to iPXE shell
choose target && goto ${target}
:failed
echo Booting failed, dropping to shell
goto shell
:shell
echo Type ‘exit’ to get the back to the menu
shell
set menu-timeout 0
set submenu-timeout 0
goto start
:isolinux
kernel http://192.168.10.41/install/leap42/CD1/boot/x86_64/loader/isolinux.bin initrd=http://192.168.10.41/install/leap42/CD1/boot/x86_64/loader/initrd install=http://192.168.10.41/install/leap42/CD1/
initrd http://192.168.10.41/install/leap42/CD1/boot/x86_64/loader/initrd
boot || goto failed
:efi
chain /install/leap42/CD1/EFI/BOOT/bootx64.efi initrd=initrd install=/install/132/CD1
initrd /install/leap42/CD1/boot/x86_64/loader/initrd
boot || goto failed
:iso
sanboot http://192.168.10.41/leap42.iso
boot || goto failed
やってみました
◆1 isolinux でブートする
展開されたISOイメージ内にはisolinux.bin があります。これを直接指定してみます。結果は
と、あえなく撃沈。
◆2 EFIでブートする
展開されたISOイメージ内にはEFI用のブートコードがあります。これを指定してみます。結果は
と、これも撃沈。
◆3 ISOイメージをブートする
iPXEには、SANからブートする機能があります。この機能を使うと、ISOイメージをそのままブートすることが出来ます。結果は、
と、ISOブートと同じ画面が出ます。ただ、この後そのまま続行しても、インストールデータがネットワークブートしたkernelから直接読めるわけではないので、
と、インストールデータがある場所を要求してきます。ここに、httpで取得出来るURLを入れてあげればそのまま続行出来ます。
とりあえずここまでは出来ています。
Category
Tips,
サーバ,
仮想化 |
受け付けていません
By ftake @
2016-03-02 01:09
2月26日、27日にオープンソースカンファレンスが明星大学日野キャンパスで開催されました。来場者は1日目約650名、2日目約900名の合計1550名でした。日本openSUSEユーザ会として2日間のブース出展と、土曜日の午前にセミナーを行いました。
ブース
オープンソースカンファレンスといえば、ブースや懇親会で色々なコミュニティの人と話をすることです。ユーザ会ブースでは、いつものように特大ギーコを中心とするギーコたちと、Geeko Magazine、Leap 42.1 のデモ、Raspberry Pi での Tumbleweed のデモを行いました。
2日間で100人以上の方に立ち寄って頂けたようです。ブースでの会話は、およそ対象者別に3パターンです。openSUSE を知らない人向けには、まずは YaST でネットワークや Samba などの設定が、設定ファイルを vi で変更せずにできることを紹介し、openSUSE を知っている人向けには、Leap 42.1 が SLE ベースになったことを説明しました。利用している人には openSUSE mini Summit やIRC定例にぜひ参加して下さいと声かけをしました。
残りわずかだった Geeko Magazine 冬号は売り切れました。2015夏号も持って行った分はすべてなくなりました。次の号では、「使ってみた」のような、簡単な記事で構いませんので、ぜひ執筆にも関わっていただければと思います。もちろん、記事の技術的な内容のサポートもします。
この日は LPIC くんではなく、HTML 5 プロフェッショナル認定試験のマスコット、セマンくん襲来。さっそく一緒に記念撮影をする特大ギーコ。
OSC東京の懇親会は少し特別で、1000円の会費で軽い食事と飲み物を飲みながら、立食でわいわい、レアなノベルティが手に入る恒例のじゃんけん大会、飛び入り LT 大会が行われます。
セミナー
セミナーのネタ切れ感が漂う中、太田さんにGeeko Magazine の冬号から、 Microsoft Azure を使ってみた話をお願いしました。その前後に、Tumbleweed と Leap 42 シリーズの話と、SUSE Studio の紹介、openSUSE.Asia Summit のレポートを挟みました。
参加者は最終的には12名程度で、全員が openSUSE を知っていて、半数が利用したことがあるとのことでした。それなら、もっとコアな話をすれば良かったのですが、そういう内容はぜひ openSUSE mini Summit に聞きに来ていただければなと思います。
参加者には openSUSE のロゴ入り USB メモリーをプレゼントしました。読み書きが遅いので、openSUSE のインストールに使ってもらえればと思います。まだ残っていますので、地方の方は今後の OSC をお楽しみに。
その他
議事録アプリケーション SIGN のブースでもらった変わったノベルティグッズ「イケメンチップス」。中にはイケメンカードが入っていました。
最後は OSC 名物 LT 大会と表彰式です。今回の LT はopenSUSE ユーザ会のさとうさんと不破さんのダブル司会でした。写真は法林さんによる受賞者紹介のプレゼン中の様子です。(司会者の写真を撮るのは難しく…)
最後はみんなで会場の撤収作業を手伝って解散です。
Category
Geeko,
openSUSE,
イベント,
レポート |
受け付けていません
By kimitoboku @
2016-02-14 18:44
1月の23日に開催された、オープンソースカンファレンス 2016 浜名湖に参加しました。
OSC浜名湖は他のOSCと違い、展示ブースとセミナーブースが同じスペースで行われる少し変わったOSCです。
その御蔭もあり、多くの参加者がセミナーを聞きながらその合間合間にスペースを回って楽しくがやがやお話したりする事が出来ます。
また、展示ブースからセミナーをすぐに見に行けるため、展示していても見たいセミナーをすぐに見に行けるので大変便利な会場です。
また、ブースに猫ブース鬼パーセント芋!の声優さんによるインタビューもありました。インタビューの動画はニコニコ動画にて公開されています。
【ニコニコ動画】【OSC2016浜名湖】展示ブース回っちゃいました! Part1
By ribbon @
2016-01-11 17:12
昔は、リモートからXを使う場合、手元のマシンにXサーバを入れてつないでいました。LinuxをはじめとするUnix系OSであれば、標準でXが入っているため問題はなかったのですが、Windows OSの場合は、Xサーバソフトを入れないと使えません。Windows用Xサーバソフトは現在も何社から販売されていますが、そこそこな値段がするため(数万以上)おいそれと使うわけにはいきません。そこで、自由に(=無償で)使える、VNCを使って同等の事が出来るようにしてみました。
作業手順については、
https://www.ibm.com/developerworks/jp/opensource/library/os-multiuserloginsvnc/ にほとんどまとまっています。ここに書いてある通りにすれば、間違いなく動きます。
ただ、1つ注意すべき事があります。いくつかあるディスプレイマネージャのうち、LXDEはXDMCPプロトコルに対応していません。ですので、VNCから使おうとしても繋がりません。GDMかKDMに切り換える必要があります。
Category
Tips,
サーバ,
デスクトップ |
受け付けていません
By ftake @
2016-01-09 03:07
最近の OSC のセミナーで紹介していた Snapper で作成した Btrfs ファイルシステムのスナップショットを Samba で公開し、「以前のバージョン」のファイルにアクセスできるファイルサーバーが、CentOS でも 7.2 になって構築できるようになりました。
Snapper は openSUSE 傘下のプロジェクトで、設定しておいたルールに応じて、自動的にファイルシステムのスナップショットを撮ってくれます。Samba 4.2 以降で、Samba と Snapper が vfs_snapper で連携できるようになりました。細かい話は OSC 京都のスライドをチェックして下さい。
では早速インストールしてみましょう。ポイントは SELinux への対応です。(まさか、無効にしていないですよね?) ここは openSUSE ユーザ会の Blog ということで、細かい CentOS の解説は行わないことにします。
とりあえず、samba と snapper をインストールします:
$ sudo yum install samba snapper
共有するディレクトリ /srv/share を作成します。以前のバージョンに対応した共有ディレクトリは Btrfs の(サブ)ボリュームである必要がありま。アクセス権は実際に使用する環境に合わせて変更して下さい:
$ sudo btrfs subvol create share
$ sudo chgrp -R geeko share
$ sudo chmod g+w share
SELinux で Samba サーバーが /srv/share にアクセスできるようにします:
# semanage がインストールされていない場合
$ sudo yum install policycoreutils-python
# ラベル設定
$ sudo semanage fcontext -a -t samba_share_t /srv/share
$ sudo restorecon /srv/share/
Samba サーバーの設定をします。今回は /etc/samba/smb.conf に次のような設定を追加します。
最後の vfs objects の設定がミソです:
[share]
comment = Shared Directory
browseable = yes
writable = yes
guest ok = no
path = /srv/share
vfs objects = btrfs snapper
Snapper の設定をします。スナップショットの残し方の設定は openSUSE と共通なので、スライドを参照して下さい:
$ sudo snapper -c smb-share create-config /srv/share
ユーザアカウント geeko がスナップショットにアクセスできるようにします。設定ファイルの直接編集も可能です:
$ sudo snapper -c smb-share set-config ALLOW_USERS=geeko
Samba サーバーを立ち上げましょう。まずはファイアウォールを開けて:
$ sudo firewall-cmd --add-service=samba --permanent
$ sudo firewall-cmd --reload
サービスの自動起動設定をし、smb サービスを開始します:
$ sudo systemctl enable smb.service
$ sudo systemctl start smb.service
ユーザー geeko を Samba サーバーのユーザーに追加し、パスワードを設定してログインできるようにします。
sudo pdbedit -a geeko
あとは Windows からアクセスして、右クリックして、「以前のバージョン」タブを開くだけ…なのですが、なんと Samba サーバーが Snapper に接続する際に、SELinux が拒否してしまいます。次のようなログが /var/log/audit/audit.log にしっかり記録されています:
type=USER_AVC msg=audit(1452273485.220:943): pid=534 uid=81 auid=4294967295 ses=4294967295 subj=system_u:system_r:system_dbusd_t:s0-s0:c0.c1023 msg='avc: denied { send_msg } for msgtype=method_call interface=org.opensuse.Snapper member=ListConfigs dest=org.opensuse.Snapper spid=16293 tpid=16588 scontext=system_u:system_r:smbd_t:s0 tcontext=system_u:system_r:snapperd_t:s0-s0:c0.c1023 tclass=dbus exe="/usr/bin/dbus-daemon" sauid=81 hostname=? addr=? terminal=?'
Samba から Snapper にアクセスを許可するポリシーを作成してみます。次のような samba-snapper.te を作成し
module samba-snapper 1.0;
require {
type smbd_t;
type snapperd_t;
class dbus { send_msg };
}
allow smbd_t snapperd_t:dbus { send_msg };
ルールをビルドします:
# Makefile がインストールされていない場合
$ sudo yum install selinux-policy-devel
# ビルド
$ make -f /usr/share/selinux/devel/Makefile
作成した samba-snapper.pp をシステムにインストールすると、以前のバージョンにアクセスできるようになります。
sudo semodule -i samba-snapper.pp
CentOS で以前のバージョンに対応したファイルサーバーを構築する方法を紹介しました。ぜひ、スライドで紹介している openSUSE で YaST を使った設定と比べてみて下さい。