2024年6月30日
This content is a draft and will not be included in production builds.
TODO: venti/copyの方法 dns -x.altがannounceに失敗している →zoneが無いのにサービスしようとしただけ mail http fossilのログ % aux/clog /srv/fscons /sys/log/fossil & これで取れるが、conした時の出力も取り合うらしく微妙
-- croncronはほかのサーバで実行させる場合、そのホストでrexexec(tcp17009)が動作している必要がある。またはsshでもいいらしいが。
DNSは、wispにローカル用DNSを用意して、基本はwispに問い合わせして、wispはさくらのDNSも参照するようにした。→authでdnsサービスすると外部のdnsを参照することができない(/net.altになる) cpuでサービスするとローカルのdnsまで外部に出してしまう なので、特に必要も無かったため、やめた(それぞれで解決させるようにした)
network!address!service
networkは/net/以下のディレクトリ名、または/からはじまるルートからの名前。addressは接続先、受信側の場合は受信するローカルアドレスまたは*(all local addresses)詳細はannounce(2)にある。
% con -l /srv/fsconsprompt: uname lufia lufiaprompt: uname adm +glendaprompt: ctl+¥>>> q% cd /adm/timezone% cp Japan local
% cd /sys/src/9/pc% mk 'CONF=pccpuf'% 9fat:% mv 9pccpuf /n/9fat% mk 'CONF=pccpuf' nuke
/n/9fat/plan9.iniに bootfile=sdC0!9fat!9pccpuf sysname=dryad auth=192.168.1.7 console=0 b115200 l8 pn s1を追加
% unmount /n/9fat% unmount /n/9
% con -l /srv/fsconsprompt: uname bootes bootesprompt: fsys mainmain: create /active/cfg/dryad sys sys d775main: create /active/cfg/dryad/cpurc sys sys 775main: create /active/cfg/dryad/namespace sys sys 664main: create /active/cfg/dryad/service sys sys d775main: create /active/cfg/dryad/service/tcp9 sys sys 775(tcp9は、listenされてなければ全部立ち上がるのを防ぐため)% cat >>/cfg/fs/namespacebind -a #l1 /net% ed /cfg/fs/cpurc% cp /rc/bin/service/!tcp564 /cfg/fs/service/tcp564
--- network configさくらVPSはコントロールパネルからローカルネットワークを構成できるが、常にインターネットへ接続できるポートはether0に限られる。Plan9は/net/がデフォルトなので、/netを内部ネットワークにしたほうが面倒がない。奇妙だが、しかたがないので/lib/namespaceを変更する。これによって、このファイルサーバをルートにするマシンは必ずNICを2枚使って、ether0をインターネット側にしなければならない。
bind -a #l1 /net (オリジナルは#lだった)bind -a #I /net
/cfg/$sysname/namespaceはこのように。
bind -a #l0 /net.altbind -a #I1 /net.alt
cpurcのipconfigで、-x.altを忘れないように
*/lib/namespace*/cfg/$sysname/namespace*/cfg/$sysname/cpurc*/lib/ndb/local*/lib/ndb/external*/n/9fat/plan9.ini
ip/ping -n3 192.168.1.3ip/ping -n3 /net.alt/icmp!8.8.8.8で確認。
認証サーバでは、DNSとticketサービスを動作させるので、次のようにcpurcへ加えた。
ndb/cs -x.alt -f /lib/ndb/externalndb/dns -sx.alt -f /lib/ndb/externalaux/listen -q -t /cfg/$sysname/service.alt.auth /net.alt/tcp
netstat /net.altでスタックごとにサービス状況をみれる
prompt: fsys main create /active/lib/ndb/external
/lib/ndb/local:database= file=/lib/ndb/local file=/lib/ndb/common
/lib/ndb/external:database= file=/lib/ndb/external file=/lib/ndb/common
% ed /lib/ndb/external% ed /lib/ndb/local
さくらVPSはether0しかインターネットに接続できないので注意。ローカルを持ちたければLAN作ってサーバ管理画面から接続が必要。さらに面倒なのが、いちどもインターネットに接続していないサーバは見れないぽい。---
--- 9fs% con -l /srv/fsconsprompt: listen tcp!*!564で動作確認。問題なさそうなので永続化。
% fossil/conf /dev/sdC0/fossil >/tmp/flproto(listen tcp!*!564を追加)% fossil/conf -w /dev/sdC0/fossil </tmp/flproto
/rc/bin/service/!tcp564があるけど、こっちはユーザがnoneになる。
ユーザテーブルの整理
prompt: uname adm +bootesprompt: uname adm -glendaprompt: uname sys -glendaprompt: uname adm -sys # どこかで間違った?
ファイル作成prompt: fsys mainprompt: create /active/sys/log/cron sys sys a666prompt: create /active/adm/secstore adm adm d775
% fshalt
reboot
--- auth ---CONF=pcauth(pcauthはetherigbeを含んでいないので足す)
install bootstrapはふつうにplan9を選択すればおkkernel CcS:にしてコンパイル
ここでipアドレスを使っておかないと、サーバ一覧に出てこない。→そんなことない、本契約して少し経てば出てくる。
まずはnicを認識可能なカーネルにしてブート。/net/ether[01]/addrを調べておく。% cat '#l0'/addr% cat '#l1'/addr
調べたアドレスをfileserverの/lib/ndb/local, externalに反映。
plan9.ini bootargs=tcp ether /net/ether1 add 192.168.1.7 255.255.255.0 sysname=wisp fs=192.168.1.3 auth=192.168.1.7 console=0 b115200 b8 pn s1
ファイルサーバの以下を編集 /cfg/wisp/cpurc /cfg/wisp/namespace /cfg/wisp/service tcp9 /cfg/wisp/service.auth tcp567 /lib/ndb/auth
reboot
ブートが終わったら
% auth/changeuser -p bootes% auth/changeuser -p lufia (with Inferno/POP secret)
再インストールで起動させたら、ネットワーク構成もリセットされるので、つなぎなおす
fsはether0をローカルにした。
bootはtcp -x .altだけどipconfigは-x /net.altでは?途中でこける?→こけない。setnetmtptは、/からはじまる名前は特別で、それ以外は/netにつなぐから
ip/ipconfig -pじゃないとだめなのかplan9.iniでは上記のとおり設定して、cpurcはipconfig -p -g ...する→そうしなくてもよかった
#I*はNIC枚数に限らずいっぱいある。0-15
---------------# auth/secuser -v lufia
adm/secstore/ ^ (store who)が作られる
--------------- ntpfs: ndb/cs -x.alt -f /lib/ndb/external ndb/dns -rx.alt -f /lib/ndb/external aux/timesync -n /net.alt/udp!ntp1.sakura.ad.jpauth, cpu: aux/timesync -f
-------------- cpuCONF=pccpu
plan9.ini: bootfile=sdC0!9fat!9pccpu bootargs=tcp -g 133.xxx.xxx.xxxx ether /net/ether1 add 192.168.1.23 255.255.255.0 sysname=luna fs= auth=
namespace: bind -a '#l' /net
cpurc: ip/ipconfig ether /net/ether0 add 133.242.155.153 255.255.254.0
prompt: fsys main create /active/cfg/theia/service/tcp17010 sys sys 775
% cp /rc/bin/service/tcp17010 service/tcp17010
-------------- dnsfsから名前解決ができなかったのでcpurcにndb/cs -x.alt -f /lib/ndb/externalndb/dns -sx.alt -f /lib/ndb/external
-------------- userdrawtermでログインしてから、% /sys/lib/newuser(secstoreパスワードは空)% ramfs -p% cd /tmp% echo 'key proto=p9sk1 dom=xxx' >factotum% auth/secstore -p factotum% rm factotum
-------------- move% aux/listen1 -t tcp!*!9001 /bin/exportfs -r $rootで、送り側% 9fs tcp!$addr!9001 /n/remote
-------------- config ----------
fs= ip=133.242.203.196 ipmask=255.255.254.0 ※1 ipgw=133.242.202.1 ns=133.242.0.3 ns=133.242.0.4 ntp=ntp ntp1.sakura.ad.jpauth= ip=133.242.129.104 ipmask=255.255.254.0 ipgw=133.242.128.1cpu= ip=133.242.155.153 ipmask=255.255.254.0 ipgw=133.242.154.1
auth id: bootesauth dom: mana.lufia.orgpassword, secstore password: ux
-------- httpd# con -l /srv/fsconsprompt: uname web :web (no home directory)prompt: uname web +lufiaprompt: fsys main create /active/usr/web sys web d775
prompt: fsys main create /active/cfg/cpuserver/cpustart sys sys 775# cat cpustartip/httpd/httpd# echo -n >/lib/namespace.httpd (内容消去)
-------- certs# ramfs -p# cd /tmp# auth/rsagen -t 'service=tls owner=*' >key# auth/rsa2x509 'C=JP ST=Osaka L=Osaka O=lufia.org CN=lufia.org' key |> auth/pemencode CERTIFICATE >cert
# auth/secuser -v bootes#
--------- update# replica/pull -v /dist/replica/networkreplica/pullコマンドが以下全部やってくれるので、ファイルオーナーについて気にしなくてもいい
# con -l /srv/fsconsprompt: srv -APW instfsprompt: ctl+¥ q# mount -c /srv/instfs /n/inst# 9fs sources# bind /n/sources/plan9 /n/dist
--------- user deleteおそらく以下の手順でいいはず(fs)prompt: fsys main remove /active/usr/web (homeの削除)/adm/usersから該当するユーザを削除(webの場合は、web:web::ではじまる行を削除)prompt: users -r /active/adm/users
-------------- backup$ yum install fuse
/etc/profile.d/plan9port.shexport PATHexport PLAN9
$ venti/venti -c venti.conf% venti/copy -f tcp!127.1!venti /net.alt/tcp!host!venti