CentOS7のインストールとGitlabのメンテナンス

公式インストール方法##

以下は公式ウェブサイトからコピーした公式インストール方法です。最も簡単なインストールは私の大帝国にあります。インストールするために外国のウェブサイトにアクセスするか、ここをスキップすることしかできません。以下を参照してください。

  1. 必要な依存関係をインストールして構成します

If you install Postfix to send email please select 'Internet Site' during setup. Instead of using Postfix you can also use Sendmail or configure a custom SMTP server and configure it as an SMTP server.

On Centos 6 and 7, the commands below will also open HTTP and SSH access in the system firewall.

sudo yum install curl openssh-server openssh-clients postfix cronie
sudo service postfix start
sudo chkconfig postfix on
sudo lokkit -s http -s ssh
  1. gitlabサーバーパッケージとインストールパッケージを追加します
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
sudo yum install gitlab-ce

If you are not comfortable installing the repository through a piped script, you can find the entire script here and select and download the package manually and install using gitlab/gitlab-ce

curl -LJO https://packages.gitlab.com/gitlab/gitlab-ce/packages/el/6/gitlab-ce-XXX.rpm/download
curl -LJO https://packages.gitlab.com/gitlab/gitlab-ce/packages/el/7/gitlab-ce-10.2.2-ce.0.el7.x86_64.rpm/download
rpm -i gitlab-ce-XXX.rpm
  1. GitLabを構成して起動します
sudo gitlab-ctl reconfigure
  1. ブラウザを開いてログインします

On your first visit, you'll be redirected to a password reset screen to provide the password for the initial administrator account. Enter your desired password and you'll be redirected back to the login screen.

The default account's username is root. Provide the password you created earlier and login. After login you can change the username if you wish.

サードパーティのミラーのインストール##

ソースの編集###

新しい/etc/yum.repos.d/gitlab-ce.repoを作成します。内容は次のとおりです。

Tsinghua University TUNAミラーソースを使用してURLを開き、コンテンツを gitlab-ce.repoファイルにコピーし、パス vim / etc / yum.repos.d / gitlab-ce.repoを編集します。

[ gitlab-ce]
name=gitlab-ce
baseurl=http://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el6
repo_gpgcheck=0
gpgcheck=0
enabled=1
gpgkey=https://packages.gitlab.com/gpg.key

ローカルYUMキャッシュを更新します###

sudo yum makecache

CommunityEditionをインストールする###

sudo yum install gitlab-ce 
#( 最新バージョンを自動的にインストールする)

sudo yum install gitlab-ce-8.15.2-ce.0.el6 
#( 指定されたバージョンをインストールします)

構成を変更する###

vim /etc/gitlab/gitlab.rb
# 外部を探す_url 'http://000.00.00.00:8081'
# 住所を変更する

GitLab ###を構成して起動します

# オンにする`/etc/gitlab/gitlab.rb`,
# 意志`external_url = 'http://git.example.com'`自分のIPアドレスに変更します。`http://xxx.xx.xxx.xx`,
# 次に、次のコマンドを実行してGitLabをコンパイルします。
sudo gitlab-ctl reconfigure
# キャッシュの消去
sudo gitlab-rake cache:clear RAILS_ENV=production

GitLab ###にログインします

Username: root 
Password: 5iveL!fe

アンインストール##

sudo gitlab-ctl uninstall

運用・保守##

# デフォルトの構成ファイルを変更します
sudo vim /etc/gitlab/gitlab.rb

# バージョンを表示
sudo cat /opt/gitlab/embedded/service/gitlab-rails/VERSION

# echo "vm.overcommit_memory=1">>/etc/sysctl.conf
# sysctl -p
# echo never >/sys/kernel/mm/transparent_hugepage/enabled
# gitlabを確認してください
gitlab-rake gitlab:check SANITIZE=true--trace
gitlab-rake gitlab:check
gitlab-rake gitlab:check SANITIZE=true

# ビュー・ログ
gitlab-ctl tail

# データベース関係のアップグレード
gitlab-rake db:migrate

# キャッシュの消去
gitlab-rake cache:clear

# gitlabパッケージを更新します
yum update gitlab-ce

# gitlabをアップグレードする
yum install gitlab-ce

# データのアップグレードコマンド
gitlab-ctl pg-upgrade

サービス管理###

gitlab-ctl start 
# すべてのgitlabコンポーネントを起動します。

gitlab-ctl stop  
# すべてのgitlabコンポーネントを停止します。

gitlab-ctl stop postgresql 
# すべてのgitlabpostgresqlコンポーネントを停止します。
# 関連するデータ接続サービスを停止する

gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq
gitlab-ctl restart 
# すべてのgitlabコンポーネントを再起動します。

gitlab-ctl restart gitlab-workhorse 
# すべてのgitlabを再起動しますgitlab-主力コンポーネント:

gitlab-ctl status 
# サービスステータスを確認する

gitlab-ctl reconfigure 
# 構成開始サービスを生成する

ログビュー###

sudo gitlab-ctl tail 
# ビュー・ログ

sudo gitlab-ctl tail redis 
# redisログを確認する

sudo gitlab-ctl tail postgresql       
# postgresqlのログを確認してください

sudo gitlab-ctl tail gitlab-workhorse 
# gitlabを確認してください-働き者のログ

sudo gitlab-ctl tail logrotate 
# logrotateのログを確認してください

sudo gitlab-ctl tail nginx    
# nginxログを確認する

sudo gitlab-ctl tail sidekiq  
# sidekiqログを確認する

sudo gitlab-ctl tail unicorn  
# ユニコーンログを確認する

管理者パスワードをリセットする###

gitlab管理者パスワードを忘れた場合、パスワードをリセットする方法、Gitlabはrootユーザーパスワードを変更します

レールツールを使用してターミナルを開きます

sudo gitlab-rails console production

ユーザーのメールアドレス、ユーザー名、パスワード、その他の情報をクエリします。id:1はルートアカウントを意味します

user = User.where(id:1).first

パスワードを再設定する

user.password ='新しいパスワード'
user.password_confirmation ='新しいパスワード'

パスワードを保存する

user.save!

完全な操作ルビースクリプト

user = User.where(id:1).first
user.password ='新しいパスワード'
user.password_confirmation ='新しいパスワード'
user.save!

バックアップとリカバリ##

Gitlabワンクリックインストールパッケージを使用してGitlabをインストールするのは非常に簡単です。同じバックアップのリカバリと移行も非常に簡単です。1つのコマンドで完全なGitlabバックアップを作成できます。

バックアップファイルのデフォルトディレクトリを変更します###

/ etc / gitlab / gitlab.rbを変更して、バックアップファイルを保存するためのデフォルトディレクトリを変更します。

gitlab_rails['backup_path']='/mnt/backups'

バックアップを作成する###

gitlab-rake gitlab:backup:create

上記のコマンドは、/ var / opt / gitlab / backupsディレクトリにxxxxxxxx_gitlab_backup.tarのような圧縮パッケージを作成します。この圧縮パッケージはGitlabの全体であり、先頭のxxxxxxはバックアップ作成のタイムスタンプです。

変更後、gitlab-ctlreconfigureコマンドを使用して構成ファイルを再ロードします。

バックアップを開始します###

バックアップファイルフォルダとウェアハウスソースファイルをここに配置します。

/var/opt/gitlab/backups                   
# バックアップファイルフォルダ
/var/opt/gitlab/git-data/repositories     
# gitリポジトリソースファイル

自動バックアップ###

backupコマンドを使用して、crontabによる自動バックアップを実現します

crontab -e
# 毎日2時にgitlabデータをバックアップします
02***/usr/bin/gitlab-rake gitlab:backup:create
02***/opt/gitlab/bin/gitlab-rake gitlab:backup:create

上記の2行を保存した後、構成をリロードします

service crond reload
# or
systemctl reload crond.service

7日間のバックアップ保持###

過去7日間のバックアップのみを保存するように設定し、/ etc / gitlab / gitlab.rb構成ファイルを編集し、次のコードを見つけて、コメント を削除します。

# /etc/gitlab/gitlab.rb構成ファイルは次の行を変更します
gitlab_rails['backup_keep_time']=604800

gitlab構成ファイルをリロードします

sudo gitlab-ctl reconfigure  

リカバリを開始します###

移行はバックアップとリカバリの手順と同じです。古いサーバーの/ var / opt / gitlab / backupsディレクトリにあるバックアップファイルを新しいサーバーの/ var / opt / gitlab / backupsにコピーするだけです(デフォルトを変更していない場合)。ディレクトリをバックアップする場合)。次に、復元コマンドを実行します。変更する場合は、最初にバックアップgitlabのディレクトリを入力します。このディレクトリは構成ファイルの gitlab_rails ['backup_path']であり、デフォルトは / var / opt / gitlab / backupsです。

次に、unicornとsidekiqを停止して、データベースへの新しい接続がなく、書き込みデータがないことを確認します。

# 関連するデータ接続サービスを停止する

gitlab-ctl stop unicorn
# ok: down: unicorn: 0s, normally up

gitlab-ctl stop sidekiq
# ok: down: sidekiq: 0s, normally up

# xxxxx番号付きバックアップから復元

# 次に、データを復元します。1406691018はバックアップファイルのタイムスタンプです。

gitlab-rake gitlab:backup:restore BACKUP=1406691018
# 新しいバージョン1483533591_2017_01_04_gitlab_backup.tar

gitlab-rake gitlab:backup:restore BACKUP=1483533591_2017_01_04_gitlab_backup.tar
# Gitlabを起動します

sudo gitlab-ctl start

実際の操作を行ったgitlab関連のユーザーであるgitは、十分な権限を取得していないと判断されます。コマンドを順番に実行します。

# 回復中の許可なし

mkdir /var/opt/gitlab/backups
chown git /var/opt/gitlab/backups
chmod 700/var/opt/gitlab/backups

# 回復成功ページは、許可なしのエラーを報告します

sudo chown -R git:git /var/opt/gitlab/git-data/repositories
sudo chmod -R ug+rwX,o-rwx /var/opt/gitlab/git-data/repositories
sudo chmod -R ug-s /var/opt/gitlab/git-data/repositories
sudo find /var/opt/gitlab/git-data/repositories -type d -print0 | sudo xargs -0 chmod g+s

バックアップファイルに権限がないと報告された場合は、 ls -alを使用して、権限が rootではなく gitであるかどうかを確認し、次の方法で gitユーザー権限を付与します。

sudo chown -R git:git 1483533591_2017_01_04_gitlab_backup.tar

暴力のエスカレーション##

ソース/etc/yum.repos.d/gitlab-ce.repoを直接編集し、GitLab CommunityEditionをインストールします

sudo yum install gitlab-ce 
#( 最新バージョンを自動的にインストールする)

sudo yum install gitlab-ce-8.15.2-ce.0.el6 
#( 指定されたバージョンをインストールします)

インストール中にエラーが発生しました

gitlab preinstall: Automatically backing up only the GitLab SQL database(excluding everything else!)
Dumping database ...
Dumping PostgreSQL database gitlabhq_production ... pg_dump:[archiver(db)] connection to database "gitlabhq_production" failed: could not connect to server:そのようなファイル、又はディレクトリはありません
 Is the server running locally and accepting
 connections on Unix domain socket "/var/opt/gitlab/postgresql/.s.PGSQL.5432"?
Backup failed
[ FAILED]
gitlab preinstall:
gitlab preinstall: Backup failed! If you want to skip this backup, run the following command and
gitlab preinstall:try again:
gitlab preinstall:
gitlab preinstall:   sudo touch /etc/gitlab/skip-auto-migrations
gitlab preinstall:
error:%pre(gitlab-ce-8.15.2-ce.0.el6.x86_64) scriptlet failed, exit status 1
Error in PREIN scriptlet in rpm package gitlab-ce-8.15.2-ce.0.el6.x86_64
error:   install:%pre scriptlet failed(2), skipping gitlab-ce-8.15.2-ce.0.el6
gitlab-ce-8.11.5-ce.0.el6.x86_64 was supposed to be removed but is not!
 Verifying  : gitlab-ce-8.11.5-ce.0.el6.x86_64    1/2
 Verifying  : gitlab-ce-8.15.2-ce.0.el6.x86_64    2/2

Failed:
 gitlab-ce.x86_64 0:8.11.5-ce.0.el6

上記のエラーの山を見て、私は一瞬でびっくりしました。「sudo touch / etc / gitlab / skip-auto-migrations」を実行しようとする救世主コマンドを見つけたので、「yuminstallgitlab-ce」を再実行する必要がありました。 、インストールは本当に成功しましたか?

...
gitlab: Thank you for installing GitLab!
gitlab: To configure and start GitLab, RUN THE FOLLOWING COMMAND:

sudo gitlab-ctl reconfigure

gitlab: GitLab should be reachable at http://114.55.148.71:8081
gitlab: Otherwise configure GitLab for your system by editing /etc/gitlab/gitlab.rb file
gitlab: And running reconfigure again.
gitlab:
gitlab: For a comprehensive list of configuration options please see the Omnibus GitLab readme
gitlab: https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/README.md
gitlab:

gitlab: GitLab now ships with a newer version ofPostgreSQL(9.6.1), and will be used
gitlab:as the defaultin the next major relase. To upgrade, RUN THE FOLLOWING COMMANDS:

sudo gitlab-ctl pg-upgrade

gitlab: For more details, please see:
gitlab: https://docs.gitlab.com/omnibus/settings/database.html#upgrade-packaged-postgresql-server
gitlab:
 掃除: gitlab-ce-8.11.5-ce.0.el6.x86_64                                                                                                                                                             2/2
Found /etc/gitlab/skip-auto-migrations, exiting...
 Verifying  : gitlab-ce-8.15.2-ce.0.el6.x86_64                                                                                                                                                             1/2
 Verifying  : gitlab-ce-8.11.5-ce.0.el6.x86_64                                                                                                                                                             2/2

更新が完了しました:
 gitlab-ce.x86_64 0:8.15.2-ce.0.el6

コンプリート!

構成を再起動すると、ほとんどの「502」エラーを解決できます。

gitlab-ctl reconfigure

エラー処理##

解決80ポートが占有されています###

Nginx構成は 80ポートが占有されていることを解決します

upstream gitlab {
 server 114.55.111.111:8081;}
server {
 # リスニングポート80
 listen       80; 
 server_name  git.diggg.cn;  
 location /{    
 proxy_pass   http://gitlab;    #ここで、アップストリームと同じ名前のプロキシを設定します
 # 以下は、削除できるいくつかのリバースプロキシ構成です。
 proxy_redirect             off; #バックエンドWebサーバーはXを渡すことができます-Forwarded-ユーザーの実際のIPを取得するため
 proxy_set_header           Host $host;    
 proxy_set_header           X-Real-IP $remote_addr;    
 proxy_set_header           X-Forwarded-For $proxy_add_x_forwarded_for;    
 client_max_body_size       10m; #クライアントが許可する単一ファイルの最大バイト数
 client_body_buffer_size    128k; #クライアントをバッファリングするためにバッファエージェントによって要求された最大バイト数
 proxy_connect_timeout      300; #Nginxはバックエンドサーバーのタイムアウト時間に接続します(エージェント接続がタイムアウトしました)
 proxy_send_timeout         300; #バックエンドサーバーデータの戻り時間(プロキシ送信タイムアウト)
 proxy_read_timeout         300; #接続が成功した後、バックエンドサーバーの応答時間(プロキシ受信タイムアウト)
 proxy_buffer_size          4k; #プロキシサーバー(nginx)のバッファーサイズを設定して、ユーザーヘッダー情報を保存します
 proxy_buffers              4 32k; #proxy_バッファ、平均Webページが32k未満の場合は、このように設定します
 proxy_busy_buffers_size    64k; #高負荷時のバッファサイズ(プロキシ_buffers*2)
 proxy_temp_file_write_size 64k; #この値より大きいキャッシュフォルダのサイズを設定すると、アップストリームサーバーからアップロードされます
  }}

Nginx構成チェックを行い、すぐに有効にします

# 構成を確認する
/usr/local/nginx/sbin/nginx -tc conf/nginx.conf
# nginxリロード構成
/usr/local/nginx/sbin/nginx -s reload

アバターを正常に表示できません###

理由:グラバターが壁に囲まれている解決策:/etc/gitlab/gitlab.rbを編集し、変更する

# gitlab_rails['gravatar_plain_url']='http://gravatar.duoshuo.com/avatar/%{hash}?s=%{size}&d=identicon'

着替える:

gitlab_rails['gravatar_plain_url']='http://gravatar.duoshuo.com/avatar/%{hash}?s=%{size}&d=identicon'

次に、コマンドラインで実行します。

sudo gitlab-ctl reconfigure 
sudo gitlab-rake cache:clear RAILS_ENV=production

internal API unreachable

このエラーは自作の落とし穴です。クローンを作成して送信する方法はありませんが、Webサイトは正常に実行でき、多くの方法を試しました。結局、私の問題は、「22」ポートが非表示になっていないことです。これは恥ずかしいことです。

GitLab: Failed to authorize your Git request: internal API unreachable

解決策:https://gitlab.com/gitlab-org/gitlab-ce/issues/33702スルーファイアウォールルール127.0.0.1

proxy_tempディレクトリには権限がありません##

[ crit]14788#0:*215open()"/usr/local/nginx/proxy_temp/5/01/0000000015"failed(13: Permission denied)while reading upstream

次のように解決しました

chown -R root:root /usr/local/nginx/proxy_temp
# nginxを編集する.conf

sudo vi /usr/local/nginx/conf/nginx.conf
# 最初の行に追加

user root;

その他のエラー###

Error executing action `run` on resource 
' bash[migrate gitlab-rails database]'

上記のエラーは、データベースが起動されていない、起動方法がわからない、サーバーを再起動した、ヒットしたというものです。 ?https://gitlab.com/gitlab-org/gitlab-ce/issues/2052#note_1667899

NameError: uninitialized constant Devise::Async
Processing by RootController#index as HTML
Completed 401 Unauthorized in17ms(ActiveRecord:2.7ms)
/var/log/gitlab/nginx/gitlab_access.log <==114.55.148.71--[04/Jan/2017:17:20:24+0800]"GET /favicon.ico HTTP/1.0"5022662"http://git.xxxxx.cn/" 
" Mozilla/5.0(Macintosh; Intel Mac OS X 10_12_2) 
AppleWebKit/537.36(KHTML, like Gecko) Chrome/55.0.2883.95 Safari/537.36"

Recommended Posts

CentOS7のインストールとGitlabのメンテナンス
Centos7のインストールとgitlabサーバーの展開
Centos7のインストールとJenkinsの構成
Centos6.5のインストールとKVMの展開
CentOS7のインストールとエントリからマスターまでのnginxのメンテナンス
CentOSでのMysqlのインストールと使用
Centos-6.5LNMP環境のインストールと展開
centos7でのredisのインストールと構成
Centos7のインストールとAirflowの展開の詳細
CentOS8のグラフィカルインストール
CentOS7システムでのJDKのインストールと構成
Centos7によるPHPのインストールとNginxのチュートリアルの詳細
CentOS6.5でのrsyncサーバーのインストールと構成
VMwareWorkstationでのCentOS7のインストールと構成
Ubuntu19.1でのGitLabのインストール、構成、およびアンインストール
Centosmysqlのインストールと構成
Centos7のインストールと構成のプロメテウス
CentOS7のインストールと構成PPTP
CentOSのインストールと構成cmake
Centos7.5のインストールと構成MongoDB4.0.4
CentOS7のインストールと構成PPTP
GitLabのインストールと基本的な使用
centos7kvmのインストールと使用
Oracle11gのCentos7サイレントインストール
CentOS7postgresqlのインストールと使用
DockerのCentOS環境インストール
Centos7elk7.1.1のインストールと使用
Centosでのconfluence6.3操作記録のインストールとクラッキング
CentosでのJira7操作記録のインストールとクラッキング
Hyper-VインストールCentOS8問題の分析
ダメンデータベースチュートリアルのCentos7インストール
CentOS8インストールMariaDB詳細チュートリアル
ジェンキンス学習のcentos6.9の下でのインストール
centOS7でのSparkのインストールと構成のチュートリアルの詳細な説明
Centos7hadoopクラスターのインストールと構成
CentOS7.Xシステムのインストールと最適化
CentOSでのJava-JDKのインストールと構成
CentOS 7Tomcatサービスのインストールと構成
001.エンタープライズレベルのCentOS7.6オペレーティングシステムのインストール
Centos8のOpenStackUssuriの最小限の展開とインストールの詳細なチュートリアル
CentOS7はopenjdk、tomcat、mysqlプロセスの紹介をインストールします
CentOSNTPサーバーのインストールと構成
2019-07-09CentOS7のインストール
centos7_1708のインストール
CentOs7のインストールと展開Zabbix3.4オリジナル
CentOS7でのErlang20.2のインストールと展開
Centos7mysqlデータベースのインストールと構成
CentOS7システムのインストールと構成のグラフィックチュートリアル
ubuntuDockerのインストールとRancherの展開
CentOS6 / 7でのMySQL8.0のインストール、展開、および構成
LinuxカーネルのコンパイルとCentOSシステムのインストール
Centos7.6オペレーティングシステムのインストールと最適化の記録
Ubuntu16.04でのCUDAのインストールとアンインストール
Ubuntu環境でのNginxのインストールと展開
Win10サブシステムUbuntuのインストールと使用
Centospython3コンパイルインストールとコンパイルgccアップグレード
CentOSでのZabbixのインストールと展開およびローカリゼーション
Centos7ハイブスタンドアロンモードのインストールと構成
CentOS7インストールzabbix4.0チュートリアル(グラフィックスとテキスト)
CentOS7でのJenkinsのインストールと展開のチュートリアル
CentOS7.2でのKVMのインストールと予備使用