mirror of
				https://git.lapiole.org/dani/ansible-roles.git
				synced 2025-10-30 18:31:28 +01:00 
			
		
		
		
	Update to 2022-01-12 23:00
This commit is contained in:
		| @@ -7,8 +7,6 @@ rpm_packager: RPM Builder <rpms@{{ ansible_domain }}> | |||||||
| rpm_user: rpmbuilder | rpm_user: rpmbuilder | ||||||
| # Unix group allowed to submit builds | # Unix group allowed to submit builds | ||||||
| rpm_build_group: rpmbuilders | rpm_build_group: rpmbuilders | ||||||
| # Admin email where notifications will be sent |  | ||||||
| rpm_admin_email: "{{ system_admin_email | default('root@' ~ ansible_domain) }}" |  | ||||||
| # name of the GPG key used to sign the packages | # name of the GPG key used to sign the packages | ||||||
| rpm_gpg_name: RPM Signing Key | rpm_gpg_name: RPM Signing Key | ||||||
| rpm_gpg_email: rpms@{{ ansible_domain }} | rpm_gpg_email: rpms@{{ ansible_domain }} | ||||||
|   | |||||||
| @@ -53,48 +53,7 @@ if ( -e $opt->{config} ) { | |||||||
|   die "Config file " . $opt->{config} . " doesn't exist\n"; |   die "Config file " . $opt->{config} . " doesn't exist\n"; | ||||||
| } | } | ||||||
|  |  | ||||||
| # If ldap is configured, we'll use it to lookup email |  | ||||||
| # addresses of submitters to send them notifications |  | ||||||
| my $ldap; |  | ||||||
| my $ldap_msg; | my $ldap_msg; | ||||||
| if (defined $conf->{ldap} and defined $conf->{ldap}->{servers}){ |  | ||||||
|   log_verbose("Connecting to " . join(', ', @{$conf->{ldap}->{servers}})); |  | ||||||
|   $ldap = new Net::LDAP($conf->{ldap}->{servers}, |  | ||||||
|     timeout => 10, |  | ||||||
|   ); |  | ||||||
|   if (not defined $ldap){ |  | ||||||
|     log_info("Couldn't connect to any LDAP servers (" . join(',', @{$conf->{ldap}->{servers}}) . ")"); |  | ||||||
|   } else { |  | ||||||
|     if (defined $conf->{ldap}->{start_tls} and $conf->{ldap}->{start_tls}){ |  | ||||||
|       log_verbose("Upgrade LDAP connection using StartTLS"); |  | ||||||
|       $ldap_msg = $ldap->start_tls( |  | ||||||
|         verify => 'require' |  | ||||||
|       ); |  | ||||||
|       if ($ldap_msg->code){ |  | ||||||
|         log_verbose("StartTLS failed : " . $ldap_msg->error); |  | ||||||
|         log_verbose("LDAP support will be disabled"); |  | ||||||
|         $ldap = undef; |  | ||||||
|       } |  | ||||||
|     } |  | ||||||
|     if (defined $conf->{ldap}->{bind_dn} and defined $conf->{ldap}->{bind_pass}){ |  | ||||||
|       log_verbose("Binding as $conf->{ldap}->{bind_dn}"); |  | ||||||
|       $ldap_msg = $ldap->bind( |  | ||||||
|         $conf->{ldap}->{bind_dn}, |  | ||||||
|         password => $conf->{ldap}->{bind_pass} |  | ||||||
|       ); |  | ||||||
|       if ($ldap_msg->code){ |  | ||||||
|         log_verbose("LDAP bind failed : " . $ldap_msg->error); |  | ||||||
|         log_verbose("LDAP support will be disabled"); |  | ||||||
|         $ldap = undef; |  | ||||||
|       } |  | ||||||
|     } else { |  | ||||||
|       log_verbose("Using anonymous bind"); |  | ||||||
|       $ldap_msg = $ldap->bind; |  | ||||||
|     } |  | ||||||
|   } |  | ||||||
| } else { |  | ||||||
|   log_verbose("No LDAP servers configured"); |  | ||||||
| } |  | ||||||
|  |  | ||||||
| my $inotify = new Linux::Inotify2 | my $inotify = new Linux::Inotify2 | ||||||
|    or die "Unable to create new inotify object: $!"; |    or die "Unable to create new inotify object: $!"; | ||||||
| @@ -161,8 +120,9 @@ sub handle_submit { | |||||||
|   my $submiter = getpwuid(stat($srpm)->uid); |   my $submiter = getpwuid(stat($srpm)->uid); | ||||||
|   my $email; |   my $email; | ||||||
|   log_info("File submited by $submiter"); |   log_info("File submited by $submiter"); | ||||||
|  |   my $ldap = ldap_connect(); | ||||||
|   if (defined $ldap){ |   if (defined $ldap){ | ||||||
|     $email = user2email($submiter); |     $email = user2email($ldap, $submiter); | ||||||
|     if (not defined $email){ |     if (not defined $email){ | ||||||
|       log_verbose("LDAP returned no result"); |       log_verbose("LDAP returned no result"); | ||||||
|     } |     } | ||||||
| @@ -172,6 +132,8 @@ sub handle_submit { | |||||||
|   } else { |   } else { | ||||||
|     log_verbose("No email address for $submiter, no notification will be sent"); |     log_verbose("No email address for $submiter, no notification will be sent"); | ||||||
|   } |   } | ||||||
|  |   $ldap->done; | ||||||
|  |   $ldap->disconnect; | ||||||
|   # Do not check the signature here |   # Do not check the signature here | ||||||
|   # We could try to submit a signed src.rpm for which we do not have the key system-wide |   # We could try to submit a signed src.rpm for which we do not have the key system-wide | ||||||
|   my $src_pkg = RPM2->open_package($srpm, RPM2->_rpmvsf_nosignatures); |   my $src_pkg = RPM2->open_package($srpm, RPM2->_rpmvsf_nosignatures); | ||||||
| @@ -288,6 +250,11 @@ sub handle_submit { | |||||||
|       ); |       ); | ||||||
|     } |     } | ||||||
|   } |   } | ||||||
|  |   if (defined $ldap){ | ||||||
|  |     $ldap->done; | ||||||
|  |     $ldap->disconnect; | ||||||
|  |   } | ||||||
|  |   return; | ||||||
| } | } | ||||||
|  |  | ||||||
| # Handle errors. Log it, and notify the admin | # Handle errors. Log it, and notify the admin | ||||||
| @@ -298,13 +265,6 @@ sub handle_error { | |||||||
|   my $dest   = shift; |   my $dest   = shift; | ||||||
|  |  | ||||||
|   log_error( $err ); |   log_error( $err ); | ||||||
|   if ( defined $conf->{notify}->{to} ) { |  | ||||||
|     send_notification( |  | ||||||
|       $conf->{notify}->{to}, |  | ||||||
|       "Error while building $job_id", |  | ||||||
|       "Building $job_id failed at step '$step'. The error was\n$err\n" |  | ||||||
|     ); |  | ||||||
|   } |  | ||||||
|   if ( defined $dest ) { |   if ( defined $dest ) { | ||||||
|     send_notification( |     send_notification( | ||||||
|       $dest, |       $dest, | ||||||
| @@ -337,8 +297,10 @@ sub send_notification { | |||||||
|  |  | ||||||
| # Lookup in LDAP if we can get the email address of a user | # Lookup in LDAP if we can get the email address of a user | ||||||
| sub user2email { | sub user2email { | ||||||
|  |   my $ldap = shift; | ||||||
|   my $user = shift; |   my $user = shift; | ||||||
|   if (not defined $ldap or not defined $conf->{ldap}->{search_base} or not defined $conf->{ldap}->{search_filter}){ |   if (not defined $ldap or not defined $conf->{ldap}->{search_base} or not defined $conf->{ldap}->{search_filter}){ | ||||||
|  |     log_verbose("LDAP not connected or not configured, skiping lookup"); | ||||||
|     return; |     return; | ||||||
|   } |   } | ||||||
|   my $filter = $conf->{ldap}->{search_filter}; |   my $filter = $conf->{ldap}->{search_filter}; | ||||||
| @@ -359,3 +321,48 @@ sub user2email { | |||||||
|   } |   } | ||||||
|   return $results->entry(0)->get_value( $conf->{ldap}->{email_attr} ); |   return $results->entry(0)->get_value( $conf->{ldap}->{email_attr} ); | ||||||
| } | } | ||||||
|  |  | ||||||
|  | # Connect to LDAP | ||||||
|  | # which will be used to lookup the email address of the submiter | ||||||
|  | sub ldap_connect { | ||||||
|  |   my $ldaph; | ||||||
|  |   if (defined $conf->{ldap} and defined $conf->{ldap}->{servers}){ | ||||||
|  |     log_verbose("Connecting to " . join(', ', @{$conf->{ldap}->{servers}})); | ||||||
|  |     $ldaph = new Net::LDAP($conf->{ldap}->{servers}, | ||||||
|  |       timeout => 10, | ||||||
|  |     ); | ||||||
|  |     if (not defined $ldaph){ | ||||||
|  |       log_info("Couldn't connect to any LDAP servers (" . join(',', @{$conf->{ldap}->{servers}}) . ")"); | ||||||
|  |     } else { | ||||||
|  |       if (defined $conf->{ldap}->{start_tls} and $conf->{ldap}->{start_tls}){ | ||||||
|  |         log_verbose("Upgrade LDAP connection using StartTLS"); | ||||||
|  |         $ldap_msg = $ldaph->start_tls( | ||||||
|  |           verify => 'require' | ||||||
|  |         ); | ||||||
|  |         if ($ldap_msg->code){ | ||||||
|  |           log_verbose("StartTLS failed : " . $ldap_msg->error); | ||||||
|  |           log_verbose("LDAP support will be disabled"); | ||||||
|  |           $ldaph = undef; | ||||||
|  |         } | ||||||
|  |       } | ||||||
|  |       if (defined $conf->{ldap}->{bind_dn} and defined $conf->{ldap}->{bind_pass}){ | ||||||
|  |         log_verbose("Binding as $conf->{ldap}->{bind_dn}"); | ||||||
|  |         $ldap_msg = $ldaph->bind( | ||||||
|  |           $conf->{ldap}->{bind_dn}, | ||||||
|  |           password => $conf->{ldap}->{bind_pass} | ||||||
|  |         ); | ||||||
|  |         if ($ldap_msg->code){ | ||||||
|  |           log_verbose("LDAP bind failed : " . $ldap_msg->error); | ||||||
|  |           log_verbose("LDAP support will be disabled"); | ||||||
|  |           $ldaph = undef; | ||||||
|  |         } | ||||||
|  |       } else { | ||||||
|  |         log_verbose("Using anonymous bind"); | ||||||
|  |         $ldap_msg = $ldaph->bind; | ||||||
|  |       } | ||||||
|  |     } | ||||||
|  |   } else { | ||||||
|  |     log_verbose("No LDAP servers configured"); | ||||||
|  |   } | ||||||
|  |   return $ldaph; | ||||||
|  | } | ||||||
|   | |||||||
| @@ -10,6 +10,7 @@ WorkingDirectory={{ rpm_root_dir }}/ | |||||||
| Restart=always | Restart=always | ||||||
| ReadWritePaths=/run {{ rpm_root_dir }}/repo {{ rpm_root_dir }}/cache {{ rpm_root_dir }}/builds | ReadWritePaths=/run {{ rpm_root_dir }}/repo {{ rpm_root_dir }}/cache {{ rpm_root_dir }}/builds | ||||||
| PrivateTmp=true | PrivateTmp=true | ||||||
|  | SyslogIdentifier=build-watcher | ||||||
|  |  | ||||||
| [Install] | [Install] | ||||||
| WantedBy=multi-user.target | WantedBy=multi-user.target | ||||||
|   | |||||||
| @@ -14,7 +14,6 @@ paths: | |||||||
|  |  | ||||||
| notify: | notify: | ||||||
|   from: buildsys@{{ ansible_domain }} |   from: buildsys@{{ ansible_domain }} | ||||||
|   to: {{ rpm_admin_email }} |  | ||||||
|  |  | ||||||
| {% if rpm_mirrors is defined and rpm_mirrors | length > 0 %} | {% if rpm_mirrors is defined and rpm_mirrors | length > 0 %} | ||||||
| mirror: | mirror: | ||||||
|   | |||||||
| @@ -11,7 +11,7 @@ | |||||||
| #   MaxUsers = "9" | #   MaxUsers = "9" | ||||||
| #   Mode = "subscription" | #   Mode = "subscription" | ||||||
| #   etc... | #   etc... | ||||||
| seafile_version: "{{ seafile_license is defined | ternary('8.0.15','9.0.2') }}" | seafile_version: "{{ seafile_license is defined | ternary('8.0.17','9.0.2') }}" | ||||||
|  |  | ||||||
| # Archive URL and sha1 are only used for the community version | # Archive URL and sha1 are only used for the community version | ||||||
| seafile_archive_url: https://s3.eu-central-1.amazonaws.com/download.seadrive.org/seafile-server_{{ seafile_version }}_x86-64.tar.gz | seafile_archive_url: https://s3.eu-central-1.amazonaws.com/download.seadrive.org/seafile-server_{{ seafile_version }}_x86-64.tar.gz | ||||||
|   | |||||||
| @@ -1,3 +0,0 @@ | |||||||
| version https://git-lfs.github.com/spec/v1 |  | ||||||
| oid sha256:cd7a93e14735f3bcc576a3c8f85937078e7805e50a613dff1c0f62ace5068112 |  | ||||||
| size 124779753 |  | ||||||
| @@ -0,0 +1,3 @@ | |||||||
|  | version https://git-lfs.github.com/spec/v1 | ||||||
|  | oid sha256:8e6f50e8470f0c0835b4c4c6507242929f496c6df68ab297bb184a1eed0ce0c4 | ||||||
|  | size 125213881 | ||||||
		Reference in New Issue
	
	Block a user
	 Daniel Berteaud
					Daniel Berteaud