• Diese Seite verwendet Cookies. Indem du diese Website weiterhin nutzt, erklärst du dich mit der Verwendung von Cookies einverstanden. Erfahre mehr

Update zum Poudriere guide

schorsch_76

FreeBSD Fanboy
Themenstarter #1
Zum Poudriere Guide würde ich gerne das Script erweitern, doch leider kann ich mich dort mit meinem Nutzernamen und Passwort nicht anmelden und ich kann auch keinen neuen Benutzer anlegen.

https://wiki.bsdforen.de/howto:poudriere_guide?s[]=poudriere

a)
Code:
# check for running script
STATUS=`ps ax | grep "$SCRIPTNAME" | grep -v grep | wc -l`

# compare to 2 because the ` create a sub process
if [ "$STATUS" -gt 2 ]; then
        echo "already running ... exit"
        exit 0
fi
Damit kann man auch jede Stunde den Build laufen lassen und es können keine zwei Scripte gleichzeitig laufen.

b)
Code:
JAILS="11amd64"
REPOS="HEAD 2018Q3"
SETS="base openssl libressl"

URL="https://bsd.<<domain>>"

poudriere_build() {
        for SET in $SETS; do
                for JAIL in $JAILS; do
                        for REPO in $REPOS; do
                                echo "Started $REPO ("`/bin/date | /usr/bin/tr -d '\n'`")"
                                "$POUDRIERE" bulk -j "$JAIL" -z "$SET" -p "$REPO"  -f "$PORTLIST" > /dev/null
                                echo "    Cleaning $REPO ("`/bin/date | /usr/bin/tr -d '\n'`")"
                                "$POUDRIERE" pkgclean -j "$JAIL" -z "$SET" -p "$REPO" -f "$PORTLIST" -y > /dev/null
                                echo "    Finished $REPO ("`/bin/date | /usr/bin/tr -d '\n'`")"
                        done
                done
        done
}
Damit kann man mehrere Sets, Jails und Port Trees bauen.
 
J

joneum

Guest
#3
warum Benutzer und Passwort? Mach es doch über ssh-keys. Ich steuere so alle meine Poudriere Maschinen bequem von meinem localen Rechner aus. und mit net/rsync kann ich dann Änderungen, welche ich local gemacht habe, mittels Script auf die gewünschte Maschine schieben und den build in den gewünschten jails starten
 

schorsch_76

FreeBSD Fanboy
Themenstarter #9
Hier ist das komplette Script.

Code:
#!/bin/sh

SCRIPTNAME=`basename "$0"`

# check for running script
STATUS=`ps ax | grep "$SCRIPTNAME" | grep -v grep | wc -l`

# compare to 2 because the ` create a sub process
if [ "$STATUS" -gt 2 ]; then
        echo "already running ... exit"
        exit 0
fi


# The build
POUDRIERE="/usr/local/bin/poudriere"
PORTLIST="/usr/local/etc/poudriere.d/port-list"

JAILS="11amd64"
REPOS="HEAD 2018Q3"
SETS="base openssl libressl"
#SETS="base"

URL="https://bsd.<<domain>>"

poudriere_build() {
        for SET in $SETS; do
                for JAIL in $JAILS; do
                        for REPO in $REPOS; do
                                echo "Started $JAIL / $REPO / $SET ("`/bin/date | /usr/bin/tr -d '\n'`")"
                                "$POUDRIERE" bulk -j "$JAIL" -z "$SET" -p "$REPO"  -f "$PORTLIST" > /dev/null
                                echo "    Cleaning $REPO ("`/bin/date | /usr/bin/tr -d '\n'`")"
                                "$POUDRIERE" pkgclean -j "$JAIL" -z "$SET" -p "$REPO" -f "$PORTLIST" -y > /dev/null
                                echo "    Finished $REPO ("`/bin/date | /usr/bin/tr -d '\n'`")"
                        done
                done
        done
}

repos_update() {
        echo "[$SCRIPTNAME] Updating ports tree..."

        for REPO in $REPOS; do
                echo "[$SCRIPTNAME] Updating ports tree... $REPO"
                "$POUDRIERE" ports -p "$REPO" -u > /dev/null
                if [ $? -ne 0 ]; then
                        echo "    Error updating ports tree."
                        exit 1
                fi
                echo "    Ports tree has been updated."
        done

}

echo "This is a log of poudriere. Details: $URL"
echo ""

repos_update
poudriere_build

echo "[$SCRIPTNAME] Cleaning distfiles..."
"$POUDRIERE" distclean -p "$REPOS" -f "$PORTLIST" -y > /dev/null

echo "[$SCRIPTNAME] Finished. ("`/bin/date | /usr/bin/tr -d '\n'`")"

exit 0