Stateless Linux experience...

Kyrre Ness Sjobak kyrre at solution-forge.net
Wed Nov 17 20:55:59 UTC 2004


ons, 17.11.2004 kl. 15.40 skrev Jason Powers:
> If you don't have GQ, slap the phpldapadmin application on your 
> computer. Since you have to run apache anyway, there's no harm in being 
> able to see the ldap's internals while you work.
> 

i was just about to mention phpldapadmin. *great* app, i installed it
(through apt) on my Debian server box.

> Jason
> 
> Mike Herrick wrote:
> >>	No html mail thanks.
> > 
> > 
> > Sorry 'bout that.
> > 
> > 
> >>>6) Because of the RAM problem above, I'm not sure that subsequent
> >>>invocations of "stateless-snapshooter -n -p DemoSystem" actually
> >>>worked as designed.  When I execute "stateless-snapshooter -l", I get:
> >>>
> >>>Protosystems:
> >>>   DemoSystem
> >>>
> >>>But it doesn't say anything about snapshots.  This makes me nervous.
> >>>What should the output look like?
> >>
> >>	Yeah, looks like there aren't any snapshots listed in LDAP.
> >>
> >>	Are there snapshots in /srv/stateless/snapshots?
> >>
> >>	Maybe use GQ (GUI LDAP client) to poke around in LDAP to see if any
> >>record of the snapshots are being made?
> > 
> > 
> > Part of the problem may be that I hadn't run 'stateless-servers -a'.  Do I
> > have to run this before or after taking a snapshot?  What values do I give
> > for nfs_path and rsync_path?
> > 
> > I don't have GQ, but here's the output of ldapsearch:
> > 
> > [root at localhost tmp]# ldapsearch -x -b 'dc=stateless-test,dc=example,dc=com'
> > '(objectclass=*)'
> > # extended LDIF
> > #
> > # LDAPv3
> > # base <dc=stateless-test,dc=example,dc=com> with scope sub
> > # filter: (objectclass=*)
> > # requesting: ALL
> > #
> > 
> > # stateless-test.example.com
> > dn: dc=stateless-test,dc=example,dc=com
> > dc: stateless-test
> > objectClass: domain
> > 
> > # people, stateless-test.example.com
> > dn: ou=people,dc=stateless-test,dc=example,dc=com
> > objectClass: organizationalUnit
> > ou: people
> > 
> > # groups, stateless-test.example.com
> > dn: ou=groups,dc=stateless-test,dc=example,dc=com
> > objectClass: organizationalUnit
> > ou: groups
> > 
> > # services, stateless-test.example.com
> > dn: ou=services,dc=stateless-test,dc=example,dc=com
> > objectClass: organizationalUnit
> > ou: services
> > 
> > # stateless, services, stateless-test.example.com
> > dn: dc=stateless,ou=services,dc=stateless-test,dc=example,dc=com
> > objectClass: statelessContainer
> > dc: stateless
> > 
> > # hosts, stateless, services, stateless-test.example.com
> > dn: dc=hosts,dc=stateless,ou=services,dc=stateless-test,dc=example,dc=com
> > objectClass: statelessContainer
> > dc: hosts
> > 
> > # servers, stateless, services, stateless-test.example.com
> > dn: dc=servers,dc=stateless,ou=services,dc=stateless-test,dc=example,dc=com
> > objectClass: statelessContainer
> > dc: servers
> > 
> > # demo-group, groups, stateless-test.example.com
> > dn: cn=demo-group,ou=groups,dc=stateless-test,dc=example,dc=com
> > objectClass: posixGroup
> > cn: demo-group
> > gidNumber: 1000
> > memberUid: group-name
> > 
> > # demo-user, people, stateless-test.example.com
> > dn: uid=demo-user,ou=people,dc=stateless-test,dc=example,dc=com
> > objectClass: inetOrgPerson
> > objectClass: posixAccount
> > objectClass: shadowAccount
> > uid: demo-user
> > uidNumber: 1000
> > gidNumber: 1000
> > cn: Demo User
> > sn: Demo User
> > homeDirectory: /home/users/demo-user
> > loginShell: /bin/bash
> > userPassword:: e1NTSEF9QVRNVUNxTnNod0g2enE1OTlHWnFOc3FpSzd5UnJSb1c=
> > 
> > # DemoSystem, stateless, services, stateless-test.example.com
> > dn:
> > statelessConfigurationName=DemoSystem,dc=stateless,ou=services,dc=stateles
> >  s-test,dc=example,dc=com
> > objectClass: statelessConfiguration
> > statelessConfigurationName: DemoSystem
> > statelessDefaultSnapshotName: DemoSystem-3
> > 
> > # DemoSystem-1, DemoSystem, stateless, services, stateless-test.example.com
> > dn:
> > statelessSnapshotName=DemoSystem-1,statelessConfigurationName=DemoSystem,d
> >  c=stateless,ou=services,dc=stateless-test,dc=example,dc=com
> > statelessSnapshotName: DemoSystem-1
> > objectClass: statelessSnapshot
> > statelessSnapshotServer: 6.6.6.1
> > 
> > # 00:02:b3:41:29:43, hosts, stateless, services, stateless-test.example.com
> > dn:
> > macAddress=00:02:b3:41:29:43,dc=hosts,dc=stateless,ou=services,dc=stateles
> >  s-test,dc=example,dc=com
> > objectClass: statelessClient
> > macAddress: 00:02:b3:41:29:43
> > statelessConfigurationName: DemoSystem
> > 
> > # status, 00:02:b3:41:29:43, hosts, stateless, services,
> > stateless-test.coren
> >  te.com
> > dn:
> > dc=status,macAddress=00:02:b3:41:29:43,dc=hosts,dc=stateless,ou=services,d
> >  c=stateless-test,dc=example,dc=com
> > objectClass: statelessClientStatus
> > dc: status
> > 
> > # DemoSystem-2, DemoSystem, stateless, services, stateless-test.example.com
> > dn:
> > statelessSnapshotName=DemoSystem-2,statelessConfigurationName=DemoSystem,d
> >  c=stateless,ou=services,dc=stateless-test,dc=example,dc=com
> > statelessSnapshotName: DemoSystem-2
> > objectClass: statelessSnapshot
> > statelessSnapshotServer: 6.6.6.1
> > 
> > # DemoSystem, servers, stateless, services, stateless-test.example.com
> > dn:
> > cn=DemoSystem,dc=servers,dc=stateless,ou=services,dc=stateless-test,dc=cor
> >  ente,dc=com
> > objectClass: statelessServer
> > cn: DemoSystem
> > 
> > # --nfs-path, servers, stateless, services, stateless-test.example.com
> > dn:
> > cn=--nfs-path,dc=servers,dc=stateless,ou=services,dc=stateless-test,dc=cor
> >  ente,dc=com
> > objectClass: statelessServer
> > cn: --nfs-path
> > 
> > # /srv/stateless/protosystems/DemoSystem, servers, stateless, services,
> > state
> >  less-test.example.com
> > dn:
> > cn=/srv/stateless/protosystems/DemoSystem,dc=servers,dc=stateless,ou=servi
> >  ces,dc=stateless-test,dc=example,dc=com
> > objectClass: statelessServer
> > cn: /srv/stateless/protosystems/DemoSystem
> > 
> > # DemoSystem-3, DemoSystem, stateless, services, stateless-test.example.com
> > dn:
> > statelessSnapshotName=DemoSystem-3,statelessConfigurationName=DemoSystem,d
> >  c=stateless,ou=services,dc=stateless-test,dc=example,dc=com
> > statelessSnapshotName: DemoSystem-3
> > objectClass: statelessSnapshot
> > statelessSnapshotServer: 6.6.6.1
> > 
> > # search result
> > search: 2
> > result: 0 Success
> > 
> > # numResponses: 19
> > # numEntries: 18
> > [root at localhost tmp]# df
> > Filesystem           1K-blocks      Used Available Use% Mounted on
> > /dev/mapper/VolGroup00-LogVol00
> >                       10095152   5916920   3665416  62% /
> > /dev/hda1               101086      8947     86920  10% /boot
> > none                    127684         0    127684   0% /dev/shm
> > /dev/mapper/VGStateless-DemoSystem
> >                        4128448   3357000    561736  86%
> > /srv/stateless/protosystems/DemoSystem
> > /dev/mapper/VGStateless-DemoSystem_1
> >                        4128448   3338300    580436  86%
> > /srv/stateless/snapshots/DemoSystem/DemoSystem-1
> > /dev/mapper/VGStateless-DemoSystem_3
> >                        4128448   3338300    580436  86%
> > /srv/stateless/snapshots/DemoSystem/DemoSystem-3
> > [root at localhost tmp]# stateless-snapshooter --list
> > Protosystems:
> >         DemoSystem
> > 
> > 
> >>>With these changes, I was able to get a machine to boot from the
> >>>snapshot, but there were many errors/warnings stemming from having a
> >>>read-only root (and /var) filesystem on a diskless client.
> >>>
> >>>When I finally got the machine to boot, it wouldn't let me login!  I
> >>>suspect some read-only root problem during the login process that
> >>>prevented the login process from completing.
> >>
> >>	Its possible the snapshot process never completed, and so that
> >>snapshot
> >>wasn't properly prepared for readonly booting.
> > 
> > 
> > The readonly-root package was installed in the protosystem, and I verified
> > that /etc/rc.readonly exists in both the protosystem and the snapshot.
> > 
> > Mike.
> > 
> > 




More information about the devel mailing list