、Gitlabのインストール
1.ベースのyumのはGitlabをマウント
インストールの手順は、
(1)の構成ソースのyum
# vim /etc/yum.repos.d/gitlab-ce.repo
(2)次の内容をコピーし、保存を注意baseurl的配置是centos7的地址,安装版本一定要正确
()
[gitlab-ce]
name=gitlab-ce
baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/
Repo_gpgcheck=0
Enabled=1
Gpgkey=https://packages.gitlab.com/gpg.key
(3)yumのローカルキャッシュを更新
# sudo yum makecache
(4)yumをgitlabをインストールし、ここでインストールバージョン11.8.0です
# sudo yum install gitlab-ce #自动安装最新版
インストールは、上記のエラーメッセージに遭遇し、あなたがnogpgcheckパラメータを追加する必要があります。
# sudo yum install gitlab-ce --nogpgcheck #自动安装最新版
あなたはまた、指定されたバージョンをインストールすることができます(元の契約のデータライブラリのバージョンを移行する必要があります)
# sudo yum install gitlab-ce-11.8.0 --nogpgcheck #安装指定版本
- RPMベースのインストールgitlab
(1)インストールの依存関係、パッケージのダウンロードとgitlab RPMをインストール
# yum install curl openssh-server postfix cronie
# yum -y install policycoreutils-python #必须安装该依赖包
(2)パッケージをダウンロード
# wget --content-disposition https://packages.gitlab.com/gitlab/gitlab-ce/packages/el/7/gitlab-ce-10.8.0-ce.0.el7.x86_64.rpm/download.rpm
# rpm -ivh gitlab-ce-10.8.0-ce.0.el7.x86_64.rpm
(3)GitLabをコンパイルします
# gitlab-ctl reconfigure
公式インストールマニュアルリンクします。https://about.gitlab.com/installation/
二、Gitlab設定
設定ファイルを変更します。
# mkdir -pv /oadata/git-data
# mkdir /oadata/gitlab/backup
# chown -R git.git /oadata/gitlab # 备份目录
# chown -R git.git /oadata/git-data # Git数据保存目录
# vim /etc/gitlab/gitlab.rb
external_url 'http://***'
gitlab_rails['time_zone'] = 'Asia/Shanghai'
gitlab_rails['gitlab_email_enabled'] = true
gitlab_rails['gitlab_email_from'] = '***'
gitlab_rails['gitlab_email_display_name'] = '***'
gitlab_rails['gitlab_email_reply_to'] = '***'
gitlab_rails['ldap_enabled'] = true
gitlab_rails['ldap_servers'] = YAML.load <<-'EOS'
main: # 'main' is the GitLab 'provider ID' of this LDAP server
label: '***'
host: '***'
port: 389
uid: 'uid'
bind_dn: 'cn=root,***'
password: '***'
encryption: 'plain' # "start_tls" or "simple_tls" or "plain"
verify_certificates: false
active_directory: true
allow_username_or_email_login: true
lowercase_usernames: true
block_auto_created_users: false
base: 'ou=users,***'
user_filter: '(memberOf=cn=gitlab,ou=groups,***)'
EOS
gitlab_rails['manage_backup_path'] = true
gitlab_rails['backup_path'] = "/oadata/gitlab/backups"
gitlab_rails['backup_archive_permissions'] = 0644
gitlab_rails['backup_keep_time'] = 129600
git_data_dirs({
"default" => {
"path" => "/oadata/git-data"
}
})
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "***"
gitlab_rails['smtp_port'] = 25
gitlab_rails['smtp_user_name'] = "***"
gitlab_rails['smtp_password'] = "***"
gitlab_rails['smtp_domain'] = "***"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = false
もう一度設定を更新してコンパイル
# gitlab-ctl reconfigure
一般的な関連コマンド:
# gitlab-ctl stop # 关闭服务
# gitlab-ctl start # 开启服务
# gitlab-ctl restart # 重启服务
# gitlab-ctl status # 查看服务状态
# gitlab-ctl tail # 查看日志
# gitlab-rake gitlab:backup:create # 创建备份
# gitlab-rake gitlab:backup:restore BACKUP=备份文件编号 # 恢复备份
# cat /opt/gitlab/embedded/service/gitlab-rails/VERSION # 查看版本信息
三、Gitlabが完成
(1)完成したパッケージのダウンロードバージョンに対応
# wget https://gitlab.com/xhang/gitlab/-/archive/v11.8.0-zh/gitlab-v11.8.0-zh.tar
(2)言語パックファイルを更新
# gitlab-ctl stop
# tar xvf gitlab-v11.8.0-zh.tar
# \cp -rf gitlab-v11.8.0-zh/* /opt/gitlab/embedded/service/gitlab-rails/
# chown -R
# gitlab-ctl reconfigure
# gitlab-ctl restart
四、Gitlabのバックアップとリカバリ
(1)バックアップスクリプト
# vim /oadata/gitlab/backup/sh/gitlab_backup.sh
#!/bin/bash
now=`date +%Y%m%d`
echo "开始执行gitlab备份..."
/opt/gitlab/bin/gitlab-rake gitlab:backup:create
echo "备份完成."
echo "清理超过10天的备份数据..."
/usr/bin/find /oadata/gitlab/backups/*gitlab_backup.tar -mtime +10 -exec rm -f {} \;
echo "清理完成."
echo "开始备份配置文件: gitlab.rb , gitlab-secrets.json"
tar -cvf /oadata/gitlab/backups/config/${now}_gitlab_config_backup.tar /etc/gitlab/gitlab.rb /etc/gitlab/gitlab-secrets.json
echo "清理超过30天的配置备份数据..."
/usr/bin/find /oadata/gitlab/backups/config/*gitlab_config_backup.tar -mtime +30 -exec rm -f {} \;
echo "清理完成."
# chmod 755 /oadata/gitlab/backup/sh/gitlab_backup.sh
(2)スケジュールされたバックアップ備考
- 毎日午前2時50分にバックアップ
50 02 * * * /oadata/gitlab/sh/gitlab_backup.sh
(3)Gitlab回復
- 復元する前に、まずデータ接続サービスを停止
# gitlab-ctl stop unicorn
# gitlab-ctl stop sidekiq
# gitlab-rake gitlab:backup:restore BACKUP=备份文件编号
マシンを交換し復元し、あなたも手動でファイルを復元する必要があります。/etc/gitlab/gitlab.rb /etc/gitlab/gitlab-secrets.json
五、Gitlabのアップグレード
- アップグレードの前にgitlab-CAの彼らの現在のバージョン番号を記録するために、バックアップを行う必要があります。
# cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
# gitlab-rake gitlab:backup:create
- :(メジャーバージョン番号を越えることはできませんアップグレードのため、それだけで次のメジャーバージョン番号にアップグレードする前に、最も高いバージョンに現在のメジャーバージョン番号にアップグレードすることができます注)Gitlabをアップグレード
接続サービスをクローズ
# gitlab-ctl stop unicorn
# gitlab-ctl stop sidekiq
以下は、Gitlabがある11.8.0
アップグレード12.0.3
。見つけ正常にインストールインタフェース500がアクセス可能でない場合は順次実行し、各ステップの後に、次のコマンドを昇格コマンドを実行gitlab-ctl reconfigure
コンフィギュレーションファイルを更新する命令を。(一定保证数据可以正常访问方可执行下一步升级指令
)。
yumのアップグレードにより、
# yum install gitlab-ce-11.11.5-ce.0.el7
何の問題後の各機能検証テストは、再びアップグレードします。
# yum install gitlab-ce-12.0.3-ce.0.el7
またはRPMをアップグレードすることにより、
# rpm -Uvh gitlab-ce-11.11.5-ce.0.el7.rpm
何の問題後の各機能検証テストは、再びアップグレードします。
rpm -Uvh gitlab-ce-11.11.5-ce.0.el7.rpm
第六に、アクセスGitlabにpostgresql
1.コンソールのAccessデータベース
[root@localhost ~]# su - gitlab-psql //登陆用户
-sh-4.1$ psql -h /var/opt/gitlab/postgresql -d gitlabhq_production 连接到gitlabhq_production库
psql (9.2.18)
Type "help" for help.
gitlabhq_production=# \h 查看帮助命令
Available help:
ABORT CREATE FUNCTION DROP TABLE
ALTER AGGREGATE CREATE GROUP DROP TABLESPACE
ALTER COLLATION CREATE INDEX DROP TEXT SEARCH CONFIGURATION
ALTER CONVERSION CREATE LANGUAGE DROP TEXT SEARCH DICTIONARY
ALTER DATABASE CREATE OPERATOR DROP TEXT SEARCH PARSER
ALTER DEFAULT PRIVILEGES CREATE OPERATOR CLASS DROP TEXT SEARCH TEMPLATE
ALTER DOMAIN CREATE OPERATOR FAMILY DROP TRIGGER
ALTER EXTENSION CREATE ROLE DROP TYPE
……………………………………………………………………………………………………………………
gitlabhq_production-# \l //查看数据库
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
---------------------+-------------+----------+-------------+-------------+---------------------------------
gitlabhq_production | gitlab | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
postgres | gitlab-psql | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
template0 | gitlab-psql | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/"gitlab-psql" +
| | | | | "gitlab-psql"=CTc/"gitlab-psql"
template1 | gitlab-psql | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/"gitlab-psql" +
| | | | | "gitlab-psql"=CTc/"gitlab-psql"
(4 rows)
gitlabhq_production-# \dt //查看多表
List of relations
Schema | Name | Type | Owner
--------+--------------------------------------+-------+--------
public | abuse_reports | table | gitlab
public | appearances | table | gitlab
public | application_settings | table | gitlab
public | audit_events | table | gitlab
public | award_emoji | table | gitlab
public | boards | table | gitlab
public | broadcast_messages | table | gitlab
……………………………………………………………………………………………………………………
gitlabhq_production-# \d abuse_reports //查看单表
Table "public.abuse_reports"
Column | Type | Modifiers
--------------+-----------------------------+------------------------------------------------------------
id | integer | not null default nextval('abuse_reports_id_seq'::regclass)
reporter_id | integer |
user_id | integer |
message | text |
created_at | timestamp without time zone |
updated_at | timestamp without time zone |
message_html | text |
Indexes:
"abuse_reports_pkey" PRIMARY KEY, btree (id)
gitlabhq_production-# \di //查看索引
List of relations
Schema | Name | Type | Owner | Table
--------+-----------------------------------------------------------------+-------+--------+--------------------------------
------
public | abuse_reports_pkey | index | gitlab | abuse_reports
public | appearances_pkey | index | gitlab | appearances
public | application_settings_pkey | index | gitlab | application_settings
public | audit_events_pkey | index | gitlab | audit_events
public | award_emoji_pkey | index | gitlab | award_emoji
public | boards_pkey | index | gitlab | boards
public | broadcast_messages_pkey | index | gitlab | broadcast_messages
public | chat_names_pkey | index | gitlab | chat_names
public | ci_application_settings_pkey | index | gitlab | ci_application_settings
public | ci_builds_pkey | index | gitlab | ci_builds
public | ci_commits_pkey | index | gitlab | ci_commits
………………………………………………………………………………………………………………………………………………
gitlabhq_production=# SELECT spcname FROM pg_tablespace; //查看所有表空间
spcname
------------
pg_default
pg_global
(2 rows)
gitlabhq_production-# \q //退出psql
-sh-4.1$ exit //退出登录用户
logout
2.パスワードにpostgresqlせずに、一時的なリモートアクセスを開きます。
(1)変更gitlab.rb
# vim /etc/gitlab/gitlab.rb
するように設定:
postgresql['enable'] = true
postgresql['listen_address'] = '0.0.0.0'
postgresql['port'] = 5432
postgresql['data_dir'] = "/var/opt/gitlab/postgresql/data"
...
...
postgresql['custom_pg_hba_entries'] = {
APPLICATION:[ { # APPLICATION should identify what the settings are used for
type: "host",
database: "all",
user: "all",
cidr: "0.0.0.0/0",
method: "trust"
}
]
}
# gitlab-ctl reconfigure
等待报错。没办法,上述修改,必然引发报错。
(2)変更pg_hba.confの
vim /var/opt/gitlab/postgresql/data/pg_hba.conf
次のように改正:
host all all 0.0.0.0/0 trust
注意:我々はgitlab-CTLの再設定を実行した場合、その後にpg_hba.confが復元されますので、変更、その後、もはや、gitlab-CTLのreconfigureコマンドを実行していないので。
# gitlab-ctl restart
七つの一般的な問題とその解決方法リファレンス
- 接続gitlabにpostgresql
- 最も包括的な公式ドキュメントに発生した問題のほとんどを解決することができます#
- 一つの問題は、ときにデータの復旧に遭遇しました