<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                # Geo configuration > 原文:[https://docs.gitlab.com/ee/administration/geo/replication/configuration.html](https://docs.gitlab.com/ee/administration/geo/replication/configuration.html) * [Configuring a new **secondary** node](#configuring-a-new-secondary-node) * [Step 1\. Manually replicate secret GitLab values](#step-1-manually-replicate-secret-gitlab-values) * [Step 2\. Manually replicate the **primary** node’s SSH host keys](#step-2-manually-replicate-the-primary-nodes-ssh-host-keys) * [Step 3\. Add the **secondary** node](#step-3-add-the-secondary-node) * [Step 4\. Enabling Hashed Storage](#step-4-enabling-hashed-storage) * [Step 5\. (Optional) Configuring the **secondary** node to trust the **primary** node](#step-5-optional-configuring-the-secondary-node-to-trust-the-primary-node) * [Step 6\. Enable Git access over HTTP/HTTPS](#step-6-enable-git-access-over-httphttps) * [Step 7\. Verify proper functioning of the **secondary** node](#step-7-verify-proper-functioning-of-the-secondary-node) * [Selective synchronization](#selective-synchronization) * [Git operations on unreplicated repositories](#git-operations-on-unreplicated-repositories) * [Upgrading Geo](#upgrading-geo) * [Troubleshooting](#troubleshooting) # Geo configuration[](#geo-configuration-premium-only "Permalink") ## Configuring a new **secondary** node[](#configuring-a-new-secondary-node "Permalink") **注意:**這是設置**輔助**地理節點的最后一步. 設置過程的各個階段必須按記錄的順序完成. 在嘗試此階段中的步驟之前,請[完成所有之前的階段](index.html#using-omnibus-gitlab) . 配置**輔助**節點的基本步驟是: * 在**主**節點和**輔助**節點之間復制所需的配置. * 在每個**輔助**節點上配置跟蹤數據庫. * 在每個**輔助**節點上啟動 GitLab. 我們鼓勵您先閱讀所有步驟,然后再在測試/生產環境中執行這些步驟. **注意:** **不要**為**輔助**節點設置任何自定義身份驗證. 這將由**主**節點處理. 任何需要訪問" **管理區域"的**更改都必須在**主**節點中完成,因為**輔助**節點是只讀副本. ### Step 1\. Manually replicate secret GitLab values[](#step-1-manually-replicate-secret-gitlab-values "Permalink") GitLab 在`/etc/gitlab/gitlab-secrets.json`文件中存儲了許多秘密值,這些秘密值在所有節點上都*必須*相同. 除非有一種方法可以在節點之間自動復制它們(請參閱[問題#3789](https://gitlab.com/gitlab-org/gitlab/-/issues/3789) ),否則必須將它們手動復制到**輔助**節點. 1. SSH 進入**主**節點,并執行以下命令: ``` sudo cat /etc/gitlab/gitlab-secrets.json ``` 這將以 JSON 格式顯示需要復制的機密. 2. SSH 進入**輔助**節點并以`root`用戶身份登錄: ``` sudo -i ``` 3. 備份所有現有機密: ``` mv /etc/gitlab/gitlab-secrets.json /etc/gitlab/gitlab-secrets.json.`date +%F` ``` 4. 將`/etc/gitlab/gitlab-secrets.json`從**主**節點復制到**輔助**節點,或在節點之間復制并粘貼文件內容: ``` sudo editor /etc/gitlab/gitlab-secrets.json # paste the output of the `cat` command you ran on the primary # save and exit ``` 5. 確保文件權限正確: ``` chown root:root /etc/gitlab/gitlab-secrets.json chmod 0600 /etc/gitlab/gitlab-secrets.json ``` 6. 重新配置**輔助**節點以使更改生效: ``` gitlab-ctl reconfigure gitlab-ctl restart ``` ### Step 2\. Manually replicate the **primary** node’s SSH host keys[](#step-2-manually-replicate-the-primary-nodes-ssh-host-keys "Permalink") GitLab 與系統安裝的 SSH 守護程序集成,指定一個用戶(通常名為`git` )來處理所有訪問請求. 在[災難恢復](../disaster_recovery/index.html)情況下,GitLab 系統管理員會將**輔助**節點升級為**主要**節點. **主**域的 DNS 記錄也應更新為指向新的**主**節點(以前是**輔助**節點). 這樣做可以避免更新 Git 遙控器和 API URL 的麻煩. 由于 SSH 主機密鑰不匹配,這將導致對新提升的**主**節點的所有 SSH 請求失敗. 為防止這種情況,必須將主 SSH 主機密鑰手動復制到**輔助**節點. 1. SSH 進入**輔助**節點并以`root`用戶身份登錄: ``` sudo -i ``` 2. 備份所有現有的 SSH 主機密鑰: ``` find /etc/ssh -iname ssh_host_* -exec cp {} {}.backup.`date +%F` \; ``` 3. 從**主**節點復制 OpenSSH 主機密鑰: 如果可以使用**root**用戶訪問**主**節點: ``` # Run this from the secondary node, change `<primary_node_fqdn>` for the IP or FQDN of the server scp root@<primary_node_fqdn>:/etc/ssh/ssh_host_*_key* /etc/ssh ``` 如果您只能通過具有`sudo`特權的用戶訪問: ``` # Run this from your primary node: sudo tar --transform 's/.*\///g' -zcvf ~/geo-host-key.tar.gz /etc/ssh/ssh_host_*_key* # Run this from your secondary node: scp <user_with_sudo>@<primary_node_fqdn>:geo-host-key.tar.gz . tar zxvf ~/geo-host-key.tar.gz -C /etc/ssh ``` 4. 在**輔助**節點上,確保文件權限正確: ``` chown root:root /etc/ssh/ssh_host_*_key* chmod 0600 /etc/ssh/ssh_host_*_key* ``` 5. 要驗證密鑰指紋是否匹配,請在兩個節點上執行以下命令: ``` for file in /etc/ssh/ssh_host_*_key; do ssh-keygen -lf $file; done ``` 您應該獲得與此輸出類似的輸出,并且兩個節點上的輸出應該相同: ``` 1024 SHA256:FEZX2jQa2bcsd/fn/uxBzxhKdx4Imc4raXrHwsbtP0M root@serverhostname (DSA) 256 SHA256:uw98R35Uf+fYEQ/UnJD9Br4NXUFPv7JAUln5uHlgSeY root@serverhostname (ECDSA) 256 SHA256:sqOUWcraZQKd89y/QQv/iynPTOGQxcOTIXU/LsoPmnM root@serverhostname (ED25519) 2048 SHA256:qwa+rgir2Oy86QI+PZi/QVR+MSmrdrpsuH7YyKknC+s root@serverhostname (RSA) ``` 6. 驗證您對現有的私鑰具有正確的公鑰: ``` # This will print the fingerprint for private keys: for file in /etc/ssh/ssh_host_*_key; do ssh-keygen -lf $file; done # This will print the fingerprint for public keys: for file in /etc/ssh/ssh_host_*_key.pub; do ssh-keygen -lf $file; done ``` **注意:**私鑰和公鑰命令的輸出應生成相同的指紋. 7. 在**輔助**節點上重新啟動`sshd` : ``` # Debian or Ubuntu installations sudo service ssh reload # CentOS installations sudo service sshd reload ``` ### Step 3\. Add the **secondary** node[](#step-3-add-the-secondary-node "Permalink") 1. SSH 到您的 GitLab **輔助**服務器并以 root 用戶身份登錄: ``` sudo -i ``` 2. 編輯`/etc/gitlab/gitlab.rb`并為您的節點添加一個**唯一的**名稱. 在接下來的步驟中,您將需要此: ``` # The unique identifier for the Geo node. gitlab_rails['geo_node_name'] = '<node_name_here>' ``` 3. 重新配置**輔助**節點以使更改生效: ``` gitlab-ctl reconfigure ``` 4. 訪問**主**節點的 **管理區>** 瀏覽器中的**地理位置** ( `/admin/geo/nodes` ). 5. 單擊**新建節點**按鈕. [![添加輔助節點](https://img.kancloud.cn/9d/b1/9db1d0c5e968fa1f6bf59d3613810c9a_2676x538.png)](img/adding_a_secondary_node.png) 6. 填寫**姓名**與`gitlab_rails['geo_node_name']`在`/etc/gitlab/gitlab.rb` . 這些值必須始終*完全*匹配,一個字符一個字符. 7. 在`/etc/gitlab/gitlab.rb` `external_url`填寫**URL** . 這些值必須始終匹配,但是一個以`/`結尾而另一個不以`/`無關緊要. 8. **不要**選中" **這是主節點"**復選框. 9. (可選)選擇**輔助**節點應復制的組或存儲分片. 保留空白以復制所有內容. 閱讀更多有關[選擇性同步的信息](#selective-synchronization) . 10. 單擊**添加節點**按鈕以添加**輔助**節點. 11. SSH 到您的 GitLab **輔助**服務器并重新啟動服務: ``` gitlab-ctl restart ``` 通過運行以下命令,檢查您的地理設置是否存在任何常見問題: ``` gitlab-rake gitlab:geo:check ``` 12. SSH 到您的**主**服務器中,并以 root 用戶身份登錄以驗證**輔助**節點是否可以訪問或您的地理設置存在任何常見問題: ``` gitlab-rake gitlab:geo:check ``` 一旦添加到管理面板并重新啟動, **輔助**節點將在稱為**backfill**的過程中自動開始從**主**節點復制丟失的數據. 同時, **主**節點將開始將每個更改通知每個**輔助**節點,以便**輔助**節點可以立即對那些通知進行操作. 確保**輔助**節點正在運行并且可訪問. 您可以使用與**主**節點相同的憑據登錄到**輔助**節點. ### Step 4\. Enabling Hashed Storage[](#step-4-enabling-hashed-storage "Permalink") 使用哈希存儲可顯著改善地理復制. 項目和組重命名不再需要節點之間的同步. 1. 訪問**主**節點的 **管理區>** 瀏覽器中的**設置>存儲庫** ( `/admin/application_settings/repository` ). 2. 在" **存儲庫存儲"**部分中,選中" **對新創建和重命名的項目使用哈希存儲路徑"** . ### Step 5\. (Optional) Configuring the **secondary** node to trust the **primary** node[](#step-5-optional-configuring-the-secondary-node-to-trust-the-primary-node "Permalink") 如果您的**主**節點使用 CA 頒發的 HTTPS 證書,則可以安全地跳過此步驟. 如果**主**節點正在使用自簽名證書以獲得*HTTPS*支持,則需要將該證書添加到**輔助**節點的信任存儲中. 從**主**節點上檢索證書,然后在**輔助**節點上遵循[這些說明](https://docs.gitlab.com/omnibus/settings/ssl.html) . ### Step 6\. Enable Git access over HTTP/HTTPS[](#step-6-enable-git-access-over-httphttps "Permalink") Geo 通過 HTTP / HTTPS 同步存儲庫,因此需要啟用此克隆方法. 導航 **管理區>** 在**主**節點上進行**設置** ( `/admin/application_settings/general` ),并將`Enabled Git access protocols`設置為`Both SSH and HTTP(S)`或`Only HTTP(S)` . ### Step 7\. Verify proper functioning of the **secondary** node[](#step-7-verify-proper-functioning-of-the-secondary-node "Permalink") 現在已配置**輔助**節點! 您可以使用與**主**節點相同的憑據登錄到**輔助**節點. 訪問**輔助**節點的 **管理區>** 瀏覽器中的**Geo** ( `/admin/geo/nodes` ),以檢查是否正確地將其標識為**輔助** Geo 節點,以及是否啟用了 Geo. 初始復制或"回填"可能仍在進行中. 您可以從瀏覽器中**主**節點的" **地理節點"**儀表板監視每個地理節點上的同步過程. [![Geo dashboard](https://img.kancloud.cn/16/e8/16e854bb5b99083c305fc979f0dcbb14_2546x1242.png)](img/geo_node_dashboard.png) 如果您的安裝無法正常工作,請查看[故障排除文檔](troubleshooting.html) . 儀表板中最明顯的兩個最明顯的問題是: 1. 數據庫復制無法正常工作. 2. 實例間實例通知不起作用. 在這種情況下,可能是以下情況: * 您正在使用自定義證書或自定義 CA(請參閱[故障排除文檔](troubleshooting.html) ). * 該實例已進行防火墻保護(請檢查您的防火墻規則). 請注意,禁用**輔助**節點將停止同步過程. 請注意,如果在**主**節點上為多個存儲庫分片定制了`git_data_dirs`則必須在每個**輔助**節點上復制相同的配置. 將您的用戶指向["使用地理服務器"指南](using_a_geo_server.html) . 當前,這是同步的: * Git 存儲庫. * Wikis. * LFS 對象. * 問題,合并請求,摘要和評論附件. * 用戶,組和項目化身. ## Selective synchronization[](#selective-synchronization "Permalink") Geo 支持選擇性同步,這使管理員可以選擇**輔助**節點應同步哪些項目. 可以按組或按存儲碎片選擇項目的子集. 前者是復制屬于用戶子集的數據的理想選擇,而后者更適合將 Geo 逐步推廣到大型 GitLab 實例. 重要的是要注意選擇性同步: 1. 不限制來自**輔助**節點的權限. 2. 不從**輔助**節點隱藏項目元數據. * 由于 Geo 當前依賴于 PostgreSQL 復制,因此所有項目元數據都將復制到**輔助**節點,但是尚未選擇的存儲庫將為空. 3. 不減少為地理事件日志生成的事件數. * 只要存在任何**輔助**節點, **主**節點都會生成事件. 選擇性同步限制是在**輔助**節點而非**主**節點上實現的. ### Git operations on unreplicated repositories[](#git-operations-on-unreplicated-repositories "Permalink") 在 HTTP(S)的 GitLab 12.10 和 SSH 的 GitLab 13.0 中[引入](https://gitlab.com/groups/gitlab-org/-/epics/2562) . 存在于**主**節點上但不存在于**輔助**節點上的存儲庫支持通過 HTTP(S)和 SSH 進行 Git 克隆,拉入和推送操作. 在以下情況下可能會發生這種情況: * 選擇性同步不包括附加到存儲庫的項目. * 存儲庫正在積極地復制,但尚未完成. ## Upgrading Geo[](#upgrading-geo "Permalink") 請參閱[更新地理節點文檔](updating_the_geo_nodes.html) . ## Troubleshooting[](#troubleshooting "Permalink") 請參閱[故障排除文檔](troubleshooting.html) .
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看