# Kickstart to install koji and bodhi install text nfs --server=athead26 --dir=/xfer/f8 repo --name=fedora --baseurl=http://@KSHTTPSERVER@/fedora/linux/releases/8/Everything/i386/os repo --name=updates --baseurl=http://@KSHTTPSERVER@/fedora/linux/updates/8/i386 lang en_US.UTF-8 keyboard us xconfig --startxonboot network --device eth0 --bootproto dhcp rootpw @ROOT_PASSWORD@ firewall --disabled auth --enablemd5 --useshadow --enablenis --nisdomain @NISDOMAIN@ --nisserver @NISSERVER@ selinux --disabled firstboot --disable timezone --utc @TIMEZONE@ bootloader --location=mbr --driveorder=sda --append="rhgb quiet console=tty0 console=ttyS0,115200n8" clearpart --all --initlabel autopart reboot %packages koji koji-builder koji-web koji-hub koji-utils pungi bodhi-server bodhi-client lynx yum-utils # FIXME missing requirements of bodhi-server TurboGears python-TurboMail python-fedora python-sqlalchemy python-genshi mash yum-utils mercurial intltool postgresql-server # FIXME missing requirement of kojid pyOpenSSL # FIXME needed to build TGCaptcha for bodhi-server python-setuptools-devel gcc %end %post KOJI_SERVER=@KOJI_SERVER@ KOJI_SERVER=localhost KOJI_ADMIN=@KOJI_ADMIN@ KOJI_ADMIN=ken trap "exec 1>&4 2>&5; : error in post-install script, exiting to shell; /bin/sh" EXIT exec 4>&1 5>&2 exec >/root/early-kickstart.log 2>&1 set -e set -x # create a simple logging tool for debugging KickStart cat <<'EOF' >/bin/:::: echo $* >>/etc/motd EOF chmod 755 /bin/:::: ## /etc/motd: start out MOTD with a warning that KickStart was not completed, ## which will be removed following the last step. cat <<'EOF' >/etc/motd ERROR: KickStart not completed successfully, this system is not installed properly. EOF :::: Add all users to sudoers echo "ALL ALL=(ALL) NOPASSWD: ALL" >>/etc/sudoers ## :::: mock setup ## :::: Add build users to mock group perl -i -pne ' if(/^mock:/) { s/kojibuilder/kojibuilder,km001742/g } ' /etc/group ### :::: Post-post-install ### cat <<'POSTEOF' >/etc/init.d/kickstart #!/bin/sh exec 4>&1 5>&2 exec >/root/late-kickstart.log 2>&1 set -e set -x :::: Starting post-final-boot. Details in /var/log/boot.log as 'kickstart'. KOJI_SERVER=@KOJI_SERVER@ KOJI_SERVER=localhost ### :::: bodhi ### :::: FIXME install additional packages yum --enablerepo development install -y TurboGears python-TurboMail \ python-fedora python-sqlalchemy koji mash yum-utils mercurial intltool \ python-bugzilla python-genshi python-crypto python-imaging :::: FIXME install TGCaptcha easy_install tgcaptcha :::: FIXME set up bodhi cd /tmp hg clone http://hg.fedorahosted.org/hg/bodhi cd bodhi # vi bodhi/config/app.cfg ## edit appropriately (don't know what that is yet) # from 'make init', just without production data: tg-admin --config=bodhi.cfg sql create bodhi/tools/init.py bodhi/tools/dev_init.py # from 'make run': python setup.py build --install-conf=`pwd` --install-data='..' ( exec python start-bodhi ) /dev/null 2>&1 & ### :::: koji setup ### :::: Add 'koji' user useradd -d /koji koji # passwd -d koji :::: koji setup :::: initialize postgresql /sbin/service postgresql initdb /sbin/service postgresql start :::: create koji user and db su - postgres -c "createuser --no-superuser --createdb --no-createrole koji" su - koji -c "createdb koji" :::: load koji schema su - koji -c "psql koji < /usr/share/doc/koji*/docs/schema.sql" :::: add koji to pg_hba.conf perl -i -pne ' if (/^# TYPE/) { print "host koji koji 127.0.0.1/32 trust\n"; print "local koji koji trust\n"; print "\n"; } ' /var/lib/pgsql/data/pg_hba.conf :::: reload postgres su - postgres -c "pg_ctl reload" :::: /etc/koji.conf perl -i -pne ' s|koji.fedoraproject.org|'$KOJI_SERVER'|g ' /etc/koji.conf :::: chkconfig postgresql on chkconfig postgresql on :::: add koji user $KOJI_ADMIN FIXME cant we use koji now echo "insert into users (name, password, status, usertype) values ('$KOJI_ADMIN', '$KOJI_ADMIN', 0, 0)" | su - koji -c psql user_id=`echo "select id from users where name = '$KOJI_ADMIN'" | su - koji -c "psql -t"` echo "insert into user_perms (user_id, perm_id) values ($user_id, 1)" | su - koji -c psql ### :::: kojihub setup ### :::: httpd kojihub.conf # s|db.example.com|'$KOJI_SERVER'|g; perl -i -pne ' s/PythonOption DBHost/# PythonOption DBHost/g; s|kojiweb.example.com|'$KOJI_SERVER'|g; ' /etc/httpd/conf.d/kojihub.conf ### :::: kojiweb setup ### :::: httpd kojiweb.conf perl -i -pne ' s|hub.example.com|'$KOJI_SERVER'|g; s|www.example.com|'$KOJI_SERVER'|g; s|server.example.com|'$KOJI_SERVER'|g; ' /etc/httpd/conf.d/kojiweb.conf :::: FIXME cat </dev/null # /etc/httpd/conf.d/kojiweb.conf PythonOption KojiHubURL http://hub.example.com/kojihub PythonOption KojiWebURL http://www.example.com/koji PythonOption KojiPackagesURL http://server.example.com/mnt/koji/packages PythonOption WebPrincipal koji/web@EXAMPLE.COM PythonOption WebKeytab /etc/httpd.keytab PythonOption WebCCache /var/tmp/kojiweb.ccache PythonOption WebCert /etc/kojiweb/kojiweb.crt PythonOption ClientCA /etc/kojiweb/clientca.crt PythonOption KojiHubCA /etc/kojiweb/kojihubca.crt PythonOption LoginTimeout 72 # This must be changed before deployment PythonOption Secret CHANGE_ME EOF ### :::: kojid builder setup ### :::: add koji user kojid FIXME cant we use koji now echo "insert into users (name, password, status, usertype) values ('kojid', 'kojid', 0, 0)" | su - koji -c psql user_id=`echo "select id from users where name = 'kojid'" | su - koji -c "psql -t"` echo "insert into user_perms (user_id, perm_id) values ($user_id, 3)" | su - koji -c psql :::: /etc/kojid/kojid.conf perl -i -pne ' s|hub.example.com|'$KOJI_SERVER'|g; ' /etc/kojid/kojid.conf :::: FIXME cat </dev/null # /etc/kojid/kojid.conf server=http://hub.example.com/kojihub EOF ### :::: finalize startup ### :::: chkconfig httpd on chkconfig httpd on :::: service httpd start service httpd start :::: /bin/:::: remove rm /bin/:::: ## /etc/motd: Remove "not complete" warning given earlier. mv /etc/motd /root/motd.log echo "KickStarted `date` with Build System in a Box @BSIAB_RELEASE@." >/etc/motd rm -f /etc/rc[35].d/S98kickstart /etc/init.d/kickstart POSTEOF # link into RC script dirs chmod 755 /etc/init.d/kickstart ln -s /etc/init.d/kickstart /etc/rc3.d/S98kickstart ln -s /etc/init.d/kickstart /etc/rc5.d/S98kickstart trap - EXIT