前言
因运维体系中涉及到用户权限管理及统计,需将Gitlab用户数据提取出来并录入到公司内部自建的权限统计平台。
本文将对Gitlab的用户信息数据批量导出进行操作说明!
思路
A)要对数据进行批量的导出,当然第一想法是将数据库中对应的库、表相关数据进行导出即可;
B)通过Navicat数据库工具连接Gitlab的Postgresql数据库,能够很方便的查找相关数据及信息导出,但工具在电脑本地,Gitlab在服务器,存在连接授权、连接信息等相关配置,这些操作可能涉及到服务重启等操作,对现用的Gitlab服务存在潜在的隐患,故工具方式弃用;
C)故笔者选择:登陆Gitlab服务器进行数据库登陆、数据查询及信息导出操作;
操作
# 根据配置文件,定位相关信息
[root@l-git4 ~]# cat /var/opt/gitlab/gitlab-rails/etc/database.yml
# 查看Gitlab对应的系统用户
[root@l-git4 ~]# cat /etc/passwd | grep gitlab
# 根据信息登陆数据库
# 切换用户
[root@l-git4 ~]# su - gitlab-psql
# 登陆数据库(-h指定host,-d指定数据库)
-sh-4.2$ psql -h /var/opt/gitlab/postgresql -d gitlabhq_production
# 查看帮助信息
gitlabhq_production=# h
# 查看数据库
gitlabhq_production=# l
# 查看库中的表(执行命令后,按回车键显示更多表信息)
gitlabhq_production=# dt
# 通过筛查,可在库中找到users表,相关用户信息都记录在表中!
# 查看users表结构
gitlabhq_production=# d users
# 查看表信息
gitlabhq_production=# SELECT * FROM users;
# 查看users表中的name字段
gitlabhq_production=# SELECT name FROM users;
# 登出数据库
gitlabhq_production=# q
# 确定表表users中的 username , email , state 字段是需要提取的信息,进行导出操作
-sh-4.2$ echo 'select username,email,state from users;' |psql -h /var/opt/gitlab/postgresql -d gitlabhq_production > info.txt