mirror of
				https://src.koozali.org/infra/smeserver-koji.git
				synced 2025-10-31 06:11:24 +01:00 
			
		
		
		
	removed old, unused scripts
This commit is contained in:
		| @@ -1,53 +0,0 @@ | |||||||
| #!/bin/bash |  | ||||||
| # Copyright (C) 2019 Intel Corporation |  | ||||||
| # SPDX-License-Identifier: Apache-2.0 |  | ||||||
|  |  | ||||||
| set -xe |  | ||||||
| SCRIPT_DIR="$(dirname "$(realpath "$0")")" |  | ||||||
| source "$SCRIPT_DIR"/globals.sh |  | ||||||
| source "$SCRIPT_DIR"/parameters.sh |  | ||||||
|  |  | ||||||
| STAGING_RPM_DIR="$KOJI_DIR/work/imported-rpms" |  | ||||||
| STAGING_RPM_SRC_DIR="$STAGING_RPM_DIR/src" |  | ||||||
| STAGING_RPM_BIN_DIR="$STAGING_RPM_DIR/bin" |  | ||||||
| STAGING_RPM_DEBUG_DIR="$STAGING_RPM_DIR/debug" |  | ||||||
|  |  | ||||||
| import_koji_pkg() { |  | ||||||
| 	local src_dir="$1" |  | ||||||
| 	local dst_dir="$2" |  | ||||||
| 	local search_pattern="$3" |  | ||||||
| 	cp -r "$src_dir" "$dst_dir" |  | ||||||
| 	chown -R "$HTTPD_USER":"$HTTPD_USER" "$dst_dir" |  | ||||||
| 	find "$dst_dir" -name "$search_pattern" -exec koji import --link {} + > /dev/null |  | ||||||
| } |  | ||||||
|  |  | ||||||
| if [[ -n "$SRC_RPM_DIR" && -n "$BIN_RPM_DIR" ]]; then |  | ||||||
| 	ADMIN_KOJI_DIR="$(echo ~kojiadmin)/.koji" |  | ||||||
| 	cp -r "$ADMIN_KOJI_DIR" "$HOME/.koji" |  | ||||||
| 	mkdir -p "$STAGING_RPM_DIR" |  | ||||||
| 	chown -R "$HTTPD_USER":"$HTTPD_USER" "$STAGING_RPM_DIR" |  | ||||||
|  |  | ||||||
| 	import_koji_pkg "$SRC_RPM_DIR" "$STAGING_RPM_SRC_DIR" "*.src.rpm" |  | ||||||
| 	import_koji_pkg "$BIN_RPM_DIR" "$STAGING_RPM_BIN_DIR" "*.$RPM_ARCH.rpm" |  | ||||||
| 	if [[ -n "$DEBUG_RPM_DIR" ]]; then |  | ||||||
| 		import_koji_pkg "$DEBUG_RPM_DIR" "$STAGING_RPM_DEBUG_DIR" "*.$RPM_ARCH.rpm" |  | ||||||
| 	fi |  | ||||||
|  |  | ||||||
| 	rm -rf "$STAGING_RPM_DIR" "$HOME/.koji" |  | ||||||
| fi |  | ||||||
| sudo -u kojiadmin koji add-tag dist-"$TAG_NAME" |  | ||||||
| sudo -u kojiadmin koji edit-tag dist-"$TAG_NAME" -x mock.package_manager=dnf |  | ||||||
| if [[ -n "$SRC_RPM_DIR" && -n "$BIN_RPM_DIR" ]]; then |  | ||||||
| 	sudo -u kojiadmin koji list-pkgs --quiet | xargs sudo -u kojiadmin koji add-pkg --owner kojiadmin dist-"$TAG_NAME" |  | ||||||
| 	sudo -u kojiadmin koji list-untagged | xargs -n 1 -P 100 sudo -u kojiadmin koji call tagBuildBypass dist-"$TAG_NAME" > /dev/null |  | ||||||
| fi |  | ||||||
| sudo -u kojiadmin koji add-tag --parent dist-"$TAG_NAME" --arches "$RPM_ARCH" dist-"$TAG_NAME"-build |  | ||||||
| sudo -u kojiadmin koji add-target dist-"$TAG_NAME" dist-"$TAG_NAME"-build |  | ||||||
| sudo -u kojiadmin koji add-group dist-"$TAG_NAME"-build build |  | ||||||
| sudo -u kojiadmin koji add-group dist-"$TAG_NAME"-build srpm-build |  | ||||||
| sudo -u kojiadmin koji add-group-pkg dist-"$TAG_NAME"-build build autoconf automake automake-dev binutils bzip2 clr-rpm-config coreutils cpio diffutils elfutils file gawk gcc gcc-dev gettext gettext-bin git glibc-dev glibc-locale glibc-utils grep gzip hostname libc6-dev libcap libtool libtool-dev linux-libc-headers m4 make netbase nss-altfiles patch pigz pkg-config pkg-config-dev rpm sed shadow systemd-lib tar unzip which xz |  | ||||||
| sudo -u kojiadmin koji add-group-pkg dist-"$TAG_NAME"-build srpm-build coreutils cpio curl-bin elfutils file git glibc-utils grep gzip make pigz plzip rpm sed shadow tar unzip wget xz |  | ||||||
| if [[ -n "$EXTERNAL_REPO" ]]; then |  | ||||||
| 	sudo -u kojiadmin koji add-external-repo -t dist-"$TAG_NAME"-build dist-"$TAG_NAME"-external-repo "$EXTERNAL_REPO" |  | ||||||
| fi |  | ||||||
| sudo -u kojiadmin koji regen-repo dist-"$TAG_NAME"-build |  | ||||||
| @@ -1,57 +0,0 @@ | |||||||
| #!/bin/bash |  | ||||||
| # Copyright (C) 2019 Intel Corporation |  | ||||||
| # SPDX-License-Identifier: Apache-2.0 |  | ||||||
|  |  | ||||||
| set -xe |  | ||||||
| SCRIPT_DIR="$(dirname "$(realpath "$0")")" |  | ||||||
| source "$SCRIPT_DIR"/globals.sh |  | ||||||
| source "$SCRIPT_DIR"/parameters.sh |  | ||||||
|  |  | ||||||
| KOJI_BUILD_FQDN="$(hostname -f)" |  | ||||||
| # Install the koji builder componelts from epel |  | ||||||
| dnf install -y epel-release |  | ||||||
| dnf install -y koji-builder |  | ||||||
|  |  | ||||||
| # Create mock folders and permissions |  | ||||||
| mkdir -p /etc/mock/koji |  | ||||||
| mkdir -p /var/lib/mock |  | ||||||
| chown -R root:mock /var/lib/mock |  | ||||||
|  |  | ||||||
| # Setup User Accounts |  | ||||||
| # useradd -r kojibuilder |  | ||||||
| usermod -G mock kojibuilder |  | ||||||
|  |  | ||||||
| # Kojid Configuration Files |  | ||||||
| KOJI_TOP_DIR="$KOJI_DIR" |  | ||||||
| mkdir -p /etc/kojid |  | ||||||
| cat > /etc/kojid/kojid.conf <<- EOF |  | ||||||
| [kojid] |  | ||||||
| sleeptime=5 |  | ||||||
| maxjobs=16 |  | ||||||
| topdir=$KOJI_TOP_DIR |  | ||||||
| workdir=/tmp/koji |  | ||||||
| mockdir=/var/lib/mock |  | ||||||
| mockuser=kojibuilder |  | ||||||
| mockhost=generic-linux-gnu |  | ||||||
| user=$KOJI_BUILD_FQDN |  | ||||||
| server=$KOJI_URL/kojihub |  | ||||||
| topurl=$KOJI_URL/kojifiles |  | ||||||
| use_createrepo_c=True |  | ||||||
| allowed_scms=$GIT_FQDN:/packages/* |  | ||||||
| cert = $KOJI_PKI_DIR/$KOJI_BUILD_FQDN.pem |  | ||||||
| serverca = $KOJI_PKI_DIR/koji_ca_cert.crt |  | ||||||
| EOF |  | ||||||
|  |  | ||||||
| if env | grep -q proxy; then |  | ||||||
| 	echo "yum_proxy = $https_proxy" >> /etc/kojid/kojid.conf |  | ||||||
| 	mkdir -p /etc/systemd/system/kojid.service.d |  | ||||||
| 	cat > /etc/systemd/system/kojid.service.d/00-proxy.conf <<- EOF |  | ||||||
| 	[Service] |  | ||||||
| 	Environment="http_proxy=$http_proxy" |  | ||||||
| 	Environment="https_proxy=$https_proxy" |  | ||||||
| 	Environment="no_proxy=$no_proxy" |  | ||||||
| 	EOF |  | ||||||
| 	systemctl daemon-reload |  | ||||||
| fi |  | ||||||
|  |  | ||||||
| systemctl enable --now kojid |  | ||||||
| @@ -1,31 +0,0 @@ | |||||||
| #!/bin/bash |  | ||||||
| # Copyright (C) 2019 Intel Corporation |  | ||||||
| # SPDX-License-Identifier: Apache-2.0 |  | ||||||
|  |  | ||||||
| set -xe |  | ||||||
| SCRIPT_DIR="$(dirname "$(realpath "$0")")" |  | ||||||
| source "$SCRIPT_DIR"/globals.sh |  | ||||||
| source "$SCRIPT_DIR"/parameters.sh |  | ||||||
|  |  | ||||||
| # Install nfs-utils |  | ||||||
| dnf install -y nfs-utils |  | ||||||
|  |  | ||||||
| KOJI_MOUNT_SERVICE="${KOJI_DIR:1}" |  | ||||||
| KOJI_MOUNT_SERVICE="${KOJI_MOUNT_SERVICE/\//-}".mount |  | ||||||
| mkdir -p /etc/systemd/system |  | ||||||
| cat > /etc/systemd/system/"$KOJI_MOUNT_SERVICE" <<- EOF |  | ||||||
| [Unit] |  | ||||||
| Description=Koji NFS Mount |  | ||||||
| After=network.target |  | ||||||
|  |  | ||||||
| [Mount] |  | ||||||
| What=$KOJI_HUB_FQDN:$KOJI_DIR |  | ||||||
| Where=$KOJI_DIR |  | ||||||
| Type=nfs |  | ||||||
| Options=defaults,ro |  | ||||||
|  |  | ||||||
| [Install] |  | ||||||
| WantedBy=multi-user.target |  | ||||||
| EOF |  | ||||||
| systemctl daemon-reload |  | ||||||
| systemctl enable --now "$KOJI_MOUNT_SERVICE" |  | ||||||
| @@ -1,26 +0,0 @@ | |||||||
| #!/bin/bash |  | ||||||
| # Copyright (C) 2019 Intel Corporation |  | ||||||
| # SPDX-License-Identifier: Apache-2.0 |  | ||||||
|  |  | ||||||
| set -xe |  | ||||||
| SCRIPT_DIR="$(dirname "$(realpath "$0")")" |  | ||||||
| source "$SCRIPT_DIR"/globals.sh |  | ||||||
| source "$SCRIPT_DIR"/parameters.sh |  | ||||||
|  |  | ||||||
| KOJI_BUILD_FQDN=$1 |  | ||||||
|  |  | ||||||
| dnf install -y nfs-utils |  | ||||||
|  |  | ||||||
| # Export server directory to be mounted by clients |  | ||||||
| echo "$KOJI_DIR $KOJI_BUILD_FQDN(ro,no_root_squash)" >> /etc/exports |  | ||||||
|  |  | ||||||
| # allow nfs usage in selinux and firewall |  | ||||||
| setsebool -P httpd_use_nfs=1 |  | ||||||
|  |  | ||||||
| firewall-cmd --permanent --add-service=nfs |  | ||||||
| firewall-cmd --permanent --add-service=mountd |  | ||||||
| firewall-cmd --permanent --add-service=rpc-bind |  | ||||||
| firewall-cmd --reload |  | ||||||
|  |  | ||||||
| systemctl enable --now rpcbind |  | ||||||
| systemctl enable --now nfs-server |  | ||||||
| @@ -1,345 +0,0 @@ | |||||||
| #!/bin/bash |  | ||||||
| # Copyright (C) 2019 Intel Corporation |  | ||||||
| # SPDX-License-Identifier: Apache-2.0 |  | ||||||
|  |  | ||||||
| set -xe |  | ||||||
| SCRIPT_DIR="$(dirname "$(realpath "$0")")" |  | ||||||
| source "$SCRIPT_DIR"/globals.sh |  | ||||||
| source "$SCRIPT_DIR"/parameters.sh |  | ||||||
|  |  | ||||||
| # Install all the required packages (some live in the epel repo, so we need to install that too) |  | ||||||
| dnf config-manager --set-enabled powertools |  | ||||||
| dnf install -y epel-release |  | ||||||
| dnf install -y koji-hub mod_ssl koji koji-web koji-utils policycoreutils-python-utils |  | ||||||
| dnf module enable postgresql:10 -y |  | ||||||
| dnf install -y postgresql-server |  | ||||||
|  |  | ||||||
| ## SETTING UP SSL CERTIFICATES FOR AUTHENTICATION |  | ||||||
| mkdir -p "$KOJI_PKI_DIR"/{certs,private} |  | ||||||
| RANDFILE="$KOJI_PKI_DIR"/.rand |  | ||||||
| dd if=/dev/urandom of="$RANDFILE" bs=256 count=1 |  | ||||||
|  |  | ||||||
| # Certificate generation |  | ||||||
| cat > "$KOJI_PKI_DIR"/ssl.cnf <<- EOF |  | ||||||
| HOME                    = $KOJI_PKI_DIR |  | ||||||
| RANDFILE                = $RANDFILE |  | ||||||
|  |  | ||||||
| [ca] |  | ||||||
| default_ca              = ca_default |  | ||||||
|  |  | ||||||
| [ca_default] |  | ||||||
| dir                     = $KOJI_PKI_DIR |  | ||||||
| certs                   = \$dir/certs |  | ||||||
| crl_dir                 = \$dir/crl |  | ||||||
| database                = \$dir/index.txt |  | ||||||
| new_certs_dir           = \$dir/newcerts |  | ||||||
| certificate             = \$dir/%s_ca_cert.pem |  | ||||||
| private_key             = \$dir/private/%s_ca_key.pem |  | ||||||
| serial                  = \$dir/serial |  | ||||||
| crl                     = \$dir/crl.pem |  | ||||||
| x509_extensions         = usr_cert |  | ||||||
| name_opt                = ca_default |  | ||||||
| cert_opt                = ca_default |  | ||||||
| default_days            = 3650 |  | ||||||
| default_crl_days        = 30 |  | ||||||
| default_md              = sha512 |  | ||||||
| preserve                = no |  | ||||||
| policy                  = policy_match |  | ||||||
|  |  | ||||||
| [policy_match] |  | ||||||
| countryName             = match |  | ||||||
| stateOrProvinceName     = match |  | ||||||
| organizationName        = match |  | ||||||
| organizationalUnitName  = optional |  | ||||||
| commonName              = supplied |  | ||||||
| emailAddress            = optional |  | ||||||
|  |  | ||||||
| [req] |  | ||||||
| default_bits            = 4096 |  | ||||||
| default_keyfile         = privkey.pem |  | ||||||
| default_md              = sha512 |  | ||||||
| distinguished_name      = req_distinguished_name |  | ||||||
| attributes              = req_attributes |  | ||||||
| x509_extensions         = v3_ca # The extensions to add to the self signed cert |  | ||||||
| string_mask             = MASK:0x2002 |  | ||||||
|  |  | ||||||
| [req_distinguished_name] |  | ||||||
| countryName                     = Country Name (2 letter code) |  | ||||||
| countryName_min                 = 2 |  | ||||||
| countryName_max                 = 2 |  | ||||||
| stateOrProvinceName             = State or Province Name (full name) |  | ||||||
| localityName                    = Locality Name (eg, city) |  | ||||||
| 0.organizationName              = Organization Name (eg, company) |  | ||||||
| organizationalUnitName          = Organizational Unit Name (eg, section) |  | ||||||
| commonName                      = Common Name (eg, your name or your server\'s hostname) |  | ||||||
| commonName_max                  = 64 |  | ||||||
| emailAddress                    = Email Address |  | ||||||
| emailAddress_max                = 64 |  | ||||||
|  |  | ||||||
| [req_attributes] |  | ||||||
| challengePassword               = A challenge password |  | ||||||
| challengePassword_min           = 8 |  | ||||||
| challengePassword_max           = 64 |  | ||||||
| unstructuredName                = An optional company name |  | ||||||
|  |  | ||||||
| [usr_cert] |  | ||||||
| basicConstraints                = CA:FALSE |  | ||||||
| nsComment                       = "OpenSSL Generated Certificate" |  | ||||||
| subjectKeyIdentifier            = hash |  | ||||||
| authorityKeyIdentifier          = keyid,issuer:always |  | ||||||
|  |  | ||||||
| [v3_ca] |  | ||||||
| subjectKeyIdentifier            = hash |  | ||||||
| authorityKeyIdentifier          = keyid:always,issuer:always |  | ||||||
| basicConstraints                = CA:true |  | ||||||
| EOF |  | ||||||
|  |  | ||||||
| # Generate and trust CA |  | ||||||
| touch "$KOJI_PKI_DIR"/index.txt |  | ||||||
| echo 01 > "$KOJI_PKI_DIR"/serial |  | ||||||
| openssl genrsa -out "$KOJI_PKI_DIR"/private/koji_ca_cert.key 2048 |  | ||||||
| openssl req -subj "/C=$COUNTRY_CODE/ST=$STATE/L=$LOCATION/O=$ORGANIZATION/OU=koji_ca/CN=$KOJI_HUB_FQDN" -config "$KOJI_PKI_DIR"/ssl.cnf -new -x509 -days 3650 -key "$KOJI_PKI_DIR"/private/koji_ca_cert.key -out "$KOJI_PKI_DIR"/koji_ca_cert.crt -extensions v3_ca |  | ||||||
| mkdir -p /etc/ca-certs/trusted |  | ||||||
|  |  | ||||||
| # Generate the koji component certificates and the admin certificate and generate a PKCS12 user certificate (for web browser) |  | ||||||
| cp "$SCRIPT_DIR"/gencert.sh "$KOJI_PKI_DIR" |  | ||||||
| pushd "$KOJI_PKI_DIR" |  | ||||||
| gencert.sh kojiweb "/C=$COUNTRY_CODE/ST=$STATE/L=$LOCATION/O=$ORGANIZATION/OU=kojiweb/CN=$KOJI_HUB_FQDN" |  | ||||||
| gencert.sh kojihub "/C=$COUNTRY_CODE/ST=$STATE/L=$LOCATION/O=$ORGANIZATION/OU=kojihub/CN=$KOJI_HUB_FQDN" |  | ||||||
| gencert.sh kojiadmin "/C=$COUNTRY_CODE/ST=$STATE/L=$LOCATION/O=$ORGANIZATION/OU=$ORG_UNIT/CN=kojiadmin" |  | ||||||
| gencert.sh kojira "/C=$COUNTRY_CODE/ST=$STATE/L=$LOCATION/O=$ORGANIZATION/OU=$ORG_UNIT/CN=kojira" |  | ||||||
| popd |  | ||||||
|  |  | ||||||
| # Copy certificates into ~/.koji for kojiadmin |  | ||||||
| useradd kojiadmin |  | ||||||
| ADMIN_KOJI_DIR="$(echo ~kojiadmin)"/.koji |  | ||||||
| mkdir -p "$ADMIN_KOJI_DIR" |  | ||||||
| cp -f "$KOJI_PKI_DIR"/kojiadmin.pem "$ADMIN_KOJI_DIR"/client.crt |  | ||||||
| cp -f "$KOJI_PKI_DIR"/koji_ca_cert.crt "$ADMIN_KOJI_DIR"/clientca.crt |  | ||||||
| cp -f "$KOJI_PKI_DIR"/koji_ca_cert.crt "$ADMIN_KOJI_DIR"/serverca.crt |  | ||||||
| chown -R kojiadmin:kojiadmin "$ADMIN_KOJI_DIR" |  | ||||||
|  |  | ||||||
|  |  | ||||||
| ## POSTGRESQL SERVER |  | ||||||
| # Initialize PostgreSQL DB |  | ||||||
| mkdir -p "$POSTGRES_DIR" |  | ||||||
| chown -R "$POSTGRES_USER":"$POSTGRES_USER" "$POSTGRES_DIR" |  | ||||||
| if [[ "$POSTGRES_DIR" != "$POSTGRES_DEFAULT_DIR" ]]; then |  | ||||||
| 	if [ "$(ls -A "$POSTGRES_DEFAULT_DIR")" ]; then |  | ||||||
| 		mv "$POSTGRES_DEFAULT_DIR" "$POSTGRES_DEFAULT_DIR".old |  | ||||||
| 	else |  | ||||||
| 		rm -rf "$POSTGRES_DEFAULT_DIR" |  | ||||||
| 	fi |  | ||||||
| 	ln -sf "$POSTGRES_DIR" "$POSTGRES_DEFAULT_DIR" |  | ||||||
| 	chown -h "$POSTGRES_USER":"$POSTGRES_USER" "$POSTGRES_DEFAULT_DIR" |  | ||||||
| fi |  | ||||||
| sudo -u "$POSTGRES_USER" initdb --pgdata "$POSTGRES_DEFAULT_DIR"/data |  | ||||||
| systemctl enable --now postgresql |  | ||||||
|  |  | ||||||
| # Setup User Accounts |  | ||||||
| useradd -r koji |  | ||||||
|  |  | ||||||
| # Setup PostgreSQL and populate schema |  | ||||||
| sudo -u "$POSTGRES_USER" createuser --no-superuser --no-createrole --no-createdb koji |  | ||||||
| sudo -u "$POSTGRES_USER" createdb -O koji koji |  | ||||||
| sudo -u koji psql koji koji < /usr/share/doc/koji*/docs/schema.sql |  | ||||||
|  |  | ||||||
| # Authorize Koji-web and Koji-hub resources |  | ||||||
| cat > "$POSTGRES_DEFAULT_DIR"/data/pg_hba.conf <<- EOF |  | ||||||
| #TYPE    DATABASE    USER    CIDR-ADDRESS    METHOD |  | ||||||
| host     koji        all     127.0.0.1/32    trust |  | ||||||
| host     koji        all     ::1/128         trust |  | ||||||
| local    koji        all                     trust |  | ||||||
| EOF |  | ||||||
| systemctl reload postgresql |  | ||||||
|  |  | ||||||
| # Bootstrapping the initial koji admin user into the PostgreSQL database |  | ||||||
| # SSL Certificate authentication |  | ||||||
| sudo -u koji psql -c "insert into users (name, status, usertype) values ('kojiadmin', 0, 0);" |  | ||||||
|  |  | ||||||
| # Give yourself admin permissions |  | ||||||
| sudo -u koji psql -c "insert into user_perms (user_id, perm_id, creator_id) values (1, 1, 1);" |  | ||||||
|  |  | ||||||
| ## KOJI CONFIGURATION FILES |  | ||||||
| # Koji Hub |  | ||||||
| mkdir -p /etc/koji-hub |  | ||||||
| cat > /etc/koji-hub/hub.conf <<- EOF |  | ||||||
| [hub] |  | ||||||
| DBName = koji |  | ||||||
| DBUser = koji |  | ||||||
| KojiDir = $KOJI_DIR |  | ||||||
| DNUsernameComponent = CN |  | ||||||
| ProxyDNs = C=$COUNTRY_CODE,ST=$STATE,L=$LOCATION,O=$ORGANIZATION,OU=kojiweb,CN=$KOJI_HUB_FQDN |  | ||||||
| LoginCreatesUser = On |  | ||||||
| KojiWebURL = $KOJI_URL/koji |  | ||||||
| DisableNotifications = True |  | ||||||
| EOF |  | ||||||
|  |  | ||||||
| mkdir -p /etc/httpd/conf.d |  | ||||||
| cat > /etc/httpd/conf.d/kojihub.conf <<- EOF |  | ||||||
| Alias /kojihub /usr/share/koji-hub/kojiapp.py |  | ||||||
| <Directory "/usr/share/koji-hub"> |  | ||||||
|     Options ExecCGI |  | ||||||
|     SetHandler wsgi-script |  | ||||||
|     Require all granted |  | ||||||
| </Directory> |  | ||||||
| Alias /kojifiles "$KOJI_DIR" |  | ||||||
| <Directory "$KOJI_DIR"> |  | ||||||
|     Options Indexes SymLinksIfOwnerMatch |  | ||||||
|     AllowOverride None |  | ||||||
|     Require all granted |  | ||||||
| </Directory> |  | ||||||
| <Location /kojihub/ssllogin> |  | ||||||
|     SSLVerifyClient require |  | ||||||
|     SSLVerifyDepth 10 |  | ||||||
|     SSLOptions +StdEnvVars |  | ||||||
| </Location> |  | ||||||
| EOF |  | ||||||
|  |  | ||||||
| # SELinux changes to allow db access |  | ||||||
| setsebool -P httpd_can_network_connect_db 1 |  | ||||||
|  |  | ||||||
| # Koji Web |  | ||||||
| mkdir -p /etc/kojiweb |  | ||||||
| cat > /etc/kojiweb/web.conf <<- EOF |  | ||||||
| [web] |  | ||||||
| SiteName = koji |  | ||||||
| KojiHubURL = $KOJI_URL/kojihub |  | ||||||
| KojiFilesURL = $KOJI_URL/kojifiles |  | ||||||
| WebCert = $KOJI_PKI_DIR/kojiweb.pem |  | ||||||
| ClientCA = $KOJI_PKI_DIR/koji_ca_cert.crt |  | ||||||
| KojiHubCA = $KOJI_PKI_DIR/koji_ca_cert.crt |  | ||||||
| LoginTimeout = 72 |  | ||||||
| Secret = NITRA_IS_NOT_CLEAR |  | ||||||
| LibPath = /usr/share/koji-web/lib |  | ||||||
| LiteralFooter = True |  | ||||||
| EOF |  | ||||||
|  |  | ||||||
| mkdir -p /etc/httpd/conf.d |  | ||||||
| cat > /etc/httpd/conf.d/kojiweb.conf <<- EOF |  | ||||||
| Alias /koji "/usr/share/koji-web/scripts/wsgi_publisher.py" |  | ||||||
| <Directory "/usr/share/koji-web/scripts"> |  | ||||||
|     Options ExecCGI |  | ||||||
|     SetHandler wsgi-script |  | ||||||
|     Require all granted |  | ||||||
| </Directory> |  | ||||||
| Alias /koji-static "/usr/share/koji-web/static" |  | ||||||
| <Directory "/usr/share/koji-web/static"> |  | ||||||
|     Options None |  | ||||||
|     AllowOverride None |  | ||||||
|     Require all granted |  | ||||||
| </Directory> |  | ||||||
| EOF |  | ||||||
|  |  | ||||||
| # SELinux changes to allow httpd network access |  | ||||||
| setsebool -P httpd_can_network_connect 1 |  | ||||||
|  |  | ||||||
| # Koji CLI |  | ||||||
| cat > /etc/koji.conf <<- EOF |  | ||||||
| [koji] |  | ||||||
| server = $KOJI_URL/kojihub |  | ||||||
| weburl = $KOJI_URL/koji |  | ||||||
| topurl = $KOJI_URL/kojifiles |  | ||||||
| topdir = $KOJI_DIR |  | ||||||
| cert = ~/.koji/client.crt |  | ||||||
| serverca = ~/.koji/serverca.crt |  | ||||||
| anon_retry = true |  | ||||||
| EOF |  | ||||||
|  |  | ||||||
| ## KOJI APPLICATION HOSTING |  | ||||||
| # Koji Filesystem Skeleton |  | ||||||
| mkdir -p "$KOJI_DIR"/{packages,repos,work,scratch,repos-dist} |  | ||||||
| chown -R "$HTTPD_USER":"$HTTPD_USER" "$KOJI_DIR" |  | ||||||
|  |  | ||||||
| # twealk SELinux to allow $HTTPD_USER write access |  | ||||||
| setsebool -P allow_httpd_anon_write=1 |  | ||||||
| semanage fcontext -a -t public_content_rw_t "$KOJI_DIR(/.*)?" |  | ||||||
| restorecon -r -v $KOJI_DIR |  | ||||||
|  |  | ||||||
| ## Apache Configuration Files |  | ||||||
| mkdir -p /etc/httpd/conf.d |  | ||||||
| cat > /etc/httpd/conf.d/ssl.conf <<- EOF |  | ||||||
| ServerName $KOJI_HUB_FQDN |  | ||||||
|  |  | ||||||
| Listen 443 https |  | ||||||
|  |  | ||||||
| #SSLPassPhraseDialog exec:/usr/libexec/httpd-ssl-pass-dialog |  | ||||||
|  |  | ||||||
| #SSLSessionCache         shmcb:/run/httpd/sslcache(512000) |  | ||||||
|  |  | ||||||
| SSLRandomSeed startup file:/dev/urandom  256 |  | ||||||
| SSLRandomSeed connect builtin |  | ||||||
|  |  | ||||||
| <VirtualHost _default_:443> |  | ||||||
|     ErrorLog /var/log/httpd/ssl_error_log |  | ||||||
|     TransferLog /var/log/httpd/ssl_access_log |  | ||||||
|     LogLevel warn |  | ||||||
|  |  | ||||||
|     SSLEngine on |  | ||||||
|     SSLHonorCipherOrder on |  | ||||||
|     SSLCipherSuite PROFILE=SYSTEM |  | ||||||
|     SSLProxyCipherSuite PROFILE=SYSTEM |  | ||||||
|  |  | ||||||
|     SSLCertificateFile $KOJI_PKI_DIR/kojihub.pem |  | ||||||
|     SSLCertificateKeyFile $KOJI_PKI_DIR/private/kojihub.key |  | ||||||
|     SSLCertificateChainFile $KOJI_PKI_DIR/koji_ca_cert.crt |  | ||||||
|     SSLCACertificateFile $KOJI_PKI_DIR/koji_ca_cert.crt |  | ||||||
|     SSLVerifyClient require |  | ||||||
|     SSLVerifyDepth 10 |  | ||||||
|  |  | ||||||
|     <FilesMatch "\.(cgi|shtml|phtml|php3?)$"> |  | ||||||
|         SSLOptions +StdEnvVars |  | ||||||
|     </FilesMatch> |  | ||||||
|     <Directory "/var/www/cgi-bin"> |  | ||||||
|         SSLOptions +StdEnvVars |  | ||||||
|     </Directory> |  | ||||||
|  |  | ||||||
|     CustomLog /var/log/httpd/ssl_request_log "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b" |  | ||||||
| </VirtualHost> |  | ||||||
| EOF |  | ||||||
|  |  | ||||||
| mkdir -p /etc/httpd/conf.modules.d |  | ||||||
| cat > /etc/httpd/conf.modules.d/wsgi.conf <<- EOF |  | ||||||
| WSGISocketPrefix /run/httpd/wsgi |  | ||||||
| EOF |  | ||||||
| cat > /etc/httpd/conf.modules.d/ssl.conf <<- EOF |  | ||||||
| LoadModule ssl_module lib/httpd/modules/mod_ssl.so |  | ||||||
| EOF |  | ||||||
|  |  | ||||||
| # allow httpd access through firewall |  | ||||||
| firewall-cmd --permanent --add-service=http |  | ||||||
| firewall-cmd --permanent --add-service=https |  | ||||||
| firewall-cmd --reload |  | ||||||
|  |  | ||||||
| # enable and start the httpd service |  | ||||||
| systemctl enable --now httpd |  | ||||||
|  |  | ||||||
|  |  | ||||||
| ## TEST KOJI CONNECTIVITY |  | ||||||
| sudo -u kojiadmin koji moshimoshi |  | ||||||
|  |  | ||||||
|  |  | ||||||
| ## KOJIRA - DNF|YUM REPOSITORY CREATION AND MAINTENANCE |  | ||||||
| # Add the user entry for the kojira user |  | ||||||
| sudo -u kojiadmin koji add-user kojira |  | ||||||
| sudo -u kojiadmin koji grant-permission repo kojira |  | ||||||
|  |  | ||||||
| # Kojira Configuration Files |  | ||||||
| mkdir -p /etc/kojira |  | ||||||
| cat > /etc/kojira/kojira.conf <<- EOF |  | ||||||
| [kojira] |  | ||||||
| server=$KOJI_URL/kojihub |  | ||||||
| topdir=$KOJI_DIR |  | ||||||
| logfile=/var/log/kojira.log |  | ||||||
| cert = $KOJI_PKI_DIR/kojira.pem |  | ||||||
| serverca = $KOJI_PKI_DIR/koji_ca_cert.crt |  | ||||||
| EOF |  | ||||||
|  |  | ||||||
| # Ensure postgresql is started prior to running kojira service |  | ||||||
| mkdir -p /etc/systemd/system/kojira.service.d |  | ||||||
| cat > /etc/systemd/system/kojira.service.d/after-postgresql.conf <<EOF |  | ||||||
| [Unit] |  | ||||||
| After=postgresql.service |  | ||||||
| EOF |  | ||||||
|  |  | ||||||
| systemctl enable --now kojira |  | ||||||
| @@ -1,28 +0,0 @@ | |||||||
| #!/bin/bash |  | ||||||
| # Copyright (C) 2019 Intel Corporation |  | ||||||
| # SPDX-License-Identifier: Apache-2.0 |  | ||||||
|  |  | ||||||
| #### START DO NOT EDIT #### |  | ||||||
| export GIT_USER=gitolite |  | ||||||
| export GIT_DEFAULT_DIR=/var/lib/gitolite |  | ||||||
|  |  | ||||||
| export POSTGRES_USER=postgres |  | ||||||
| export POSTGRES_DEFAULT_DIR=/var/lib/pgsql |  | ||||||
|  |  | ||||||
| export HTTPD_USER=apache |  | ||||||
| export HTTPD_DOCUMENT_ROOT=/var/www/html |  | ||||||
|  |  | ||||||
| export KOJI_PKI_DIR=/etc/pki/koji |  | ||||||
|  |  | ||||||
| check_dependency() { |  | ||||||
| 	if [[ "$#" -ne 1 ]]; then |  | ||||||
| 		echo "Incorrect number of arguments!" >&2 |  | ||||||
| 		exit 1 |  | ||||||
| 	fi |  | ||||||
| 	if ! type "$1"; then |  | ||||||
| 		echo "$1 not found!" >&2 |  | ||||||
| 		exit 1 |  | ||||||
| 	fi |  | ||||||
| } |  | ||||||
|  |  | ||||||
| #### END DO NOT EDIT #### |  | ||||||
| @@ -1,36 +0,0 @@ | |||||||
| #!/bin/bash |  | ||||||
| # Copyright (C) 2019 Intel Corporation |  | ||||||
| # SPDX-License-Identifier: Apache-2.0 |  | ||||||
|  |  | ||||||
| ## KOJI RPM BUILD AND TRACKER |  | ||||||
| export KOJI_DIR=/mnt/koji |  | ||||||
| export KOJI_HUB_FQDN="$(hostname -f)" |  | ||||||
| export KOJI_URL=http://"$KOJI_HUB_FQDN" |  | ||||||
| export KOJID_CAPACITY=16 |  | ||||||
| export TAG_NAME=sme |  | ||||||
| # Use for koji SSL certificates |  | ||||||
| export COUNTRY_CODE='EX' |  | ||||||
| export STATE='Example' |  | ||||||
| export LOCATION='Example' |  | ||||||
| export ORGANIZATION='Koozali' |  | ||||||
| export ORG_UNIT='Koji' |  | ||||||
| # Use for importing existing RPMs |  | ||||||
| export RPM_ARCH='x86_64' |  | ||||||
| export SRC_RPM_DIR= |  | ||||||
| export BIN_RPM_DIR= |  | ||||||
| export DEBUG_RPM_DIR= |  | ||||||
| # Comment the following if supplying all RPMs as an upstream and not a downstream |  | ||||||
| export EXTERNAL_REPO=http://mirrorlist.centos.org/releases/10/smeos/ |  | ||||||
|  |  | ||||||
| ## POSTGRESQL DATABASE |  | ||||||
| export POSTGRES_DIR=/var/lib/pgsql |  | ||||||
|  |  | ||||||
| ## GIT REPOSITORIES |  | ||||||
| export GIT_DIR= |  | ||||||
| export GIT_FQDN="https://src.koozali.org/" |  | ||||||
| export IS_ANONYMOUS_GIT_NEEDED=false |  | ||||||
| export GITOLITE_PUB_KEY='' |  | ||||||
|  |  | ||||||
| ## UPSTREAMS CACHE |  | ||||||
| export UPSTREAMS_DIR=/srv/upstreams |  | ||||||
|  |  | ||||||
		Reference in New Issue
	
	Block a user
	 Trevor Batley
					Trevor Batley