Skip to main content

2 posts tagged with "gitlab"

View All Tags

Gitlab pages throws 502

· One min read

Intermittent 502 errors or after a few days If you run Pages on a system that uses systemd and tmpfiles.d, you may encounter intermittent 502 errors trying to serve Pages with an error similar to:

dial tcp: lookup gitlab.example.com on [::1]:53: dial udp [::1]:53: connect: no route to host"

GitLab Pages creates a bind mount inside /tmp/gitlab-pages-* that includes files like /etc/hosts. However, systemd may clean the /tmp/ directory on a regular basis so the DNS configuration may be lost.

  1. To stop systemd from cleaning the Pages related content: 1. Tell tmpfiles.d to not remove the Pages /tmp directory:
echo 'x /tmp/gitlab-pages-*' >> /etc/tmpfiles.d/gitlab-pages-jail.conf
  1. Restart GitLab Pages:
sudo gitlab-ctl restart gitlab-pages

Gitlab Omnisharp package - Change LDAP DN for external user

· 2 min read

Scenario:

Change DN from "cn=李小李,ou=IT 中心,ou=XX 公司,dc=xx,dc=com" to "cn=李小李,ou=HR Dept,ou=XX 公司,dc=xx,dc=com" for user #11.

Step 1 - Connect to boundled PostgreSQL database

# sudo gitlab-psql -d gitlabhq_production
psql (10.9)
Type "help" for help.

gitlabhq_production=#

Refer to: https://docs.gitlab.com/omnibus/settings/database.html#connecting-to-the-bundled-postgresql-database

Step 2 - Search user DN by user id in the psql shell

gitlabhq_production=# select * from identities where provider = 'ldapmain' and user_id = 11;
id | extern_uid | provider | user_id | created_at | updated_at | saml_provider_id | secondary_extern_uid
----+----------------------------------------------------------------+----------+---------+----------------------------+----------------------------+------------------+----------------------
9 | cn=李小李,ou=IT中心,ou=XX公司,dc=xx,dc=com | ldapmain | 11 | 2018-06-27 15:01:13.457313 | 2019-12-19 03:26:00.777429 | |
(1 row)

gitlabhq_production=#

Step 3 - Update user DN

update identities set extern_uid = CONCAT('cn=',E'\u674e',E'\u5c0f',E'\u674e',',ou='HR Dept',',ou=XX',E'\u516c',E'\u53f8',',dc=q1oa,dc=com') where provider = 'ldapmain' and user_id = 11;
UPDATE 1
gitlabhq_production=#

Notes: You can't input chinese characters in the psql shell, so you need encode the chinese chars in unicode format and use CONCAT function to concat ascii and unicode characters in the update SQL statement. Refer to: https://kb.objectrocket.com/postgresql/use-psql-to-insert-a-record-with-unicode-characters-845

PS: In GitLab ver 12.2.5 (09f8edbc29a), it is able to modify user's DN by : Admin Area -> Overview -> Users -> find user and switch to "Identities" tab -> Edit

ClustrMaps