Archive

‘RedHat EL / CentOS’ 分類過的Archive

GitLab 一個可以快速建立 Git 專案庫的開放式原始碼

2015年6月6日 評論已關閉

GitLab是一個透過 Ruby on Rails 開發的開放式原始碼軟體,我們可以透過它快速的建立一個具備 Web 介面的自館型 Git 專案庫,它的功能與 GitHub 類似,但好處是安裝佈署的方式十分簡單。目前官方網站有提供 Ubuntu 12.04、Ubuntu 14.04、Debian 7、Debian8、CentOS 6 與 7 六個不同的發行套件安裝模組,你可以前往 https://about.gitlab.com/downloads/挑選對應的發行套件,依據說明來進行安裝與配置。

補充1. 如果你是使用 Oracle Enterprise Linux 來作為安裝 GitLab 的環境時,你會發現在 CentOS 對應安裝說明文件中的第二步驟,當你執行 sudo yum install gitlab-ce 時,會告訴你找不到 gitlab-ce 這個套件,主要原因是預設的 GitLab 套件庫路徑命名並未提供 OEL 的路徑,因此你必須要調整  /etc/yum.repos.d/gitlab_gitlab-ce.repo 檔案中的路徑,讓它改找 EL ( Enterprise Linux ) 的目錄才可以順利安裝。

[gitlab_gitlab-ce]
name=gitlab_gitlab-ce
baseurl=https://packages.gitlab.com/gitlab/gitlab-ce/el/7/$basearch
repo_gpgcheck=1
gpgcheck=0
enabled=1
gpgkey=https://packages.gitlab.com/gpg.key
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt

[gitlab_gitlab-ce-source]
name=gitlab_gitlab-ce-source
baseurl=https://packages.gitlab.com/gitlab/gitlab-ce/el/7/SRPMS
repo_gpgcheck=1
gpgcheck=0
enabled=1
gpgkey=https://packages.gitlab.com/gpg.key
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt

補充2. 由於 GitLab 的安裝可以算是一個懶人包的配置方式,因此包含網站伺服器 ngnix 、資料庫 PostgreSQL 等你都不需要額外安裝,系統會自動幫你配置好在 /opt 目錄中,因此建議你在安裝之前可以將 /opt 目錄獨立一個磁碟空間,方便後續專案上傳與存取使用。

補充3. GitLab 也可以支援環境中的 AD 或是 LDAP 伺服器,若是你需要整合這類的帳號伺服器時,可以依據下列步驟進行調整:

  1. 首先,請你先切換使用者帳號到 git 中:
    [root@git-server ~]# su – git
    Last login: Sat Jun 6 19:41:31 CST 2015 on pts/0
    -sh-4.2$
  2. 接著,切換路徑到 gitlab-rails/etc/ 目錄內:
    -sh-4.2$ cd gitlab-rails/etc/
  3. 調整 gitlab.yml 檔案中關於 LDAP 的相關配置,如下所示,設定完畢後重啟便可以在網站首頁看到 LDAP 的登入頁面選項
    ## LDAP settings
    # You can inspect a sample of the LDAP users with login access by running:
    # bundle exec rake gitlab:ldap:check RAILS_ENV=production
    ldap:
    enabled: true
    host: ‘IP’
    port: 389
    uid: ‘sAMAccountName’
    method: ‘plain’ # “tls” or “ssl” or “plain”
    bind_dn: ‘CN=Administrator,CN=Users,DC=abc,DC=com,DC=tw’
    password: ‘123456’
    active_directory:
    allow_username_or_email_login:
    base: ‘CN=Users,DC=abc,DC=com,DC=tw’
    user_filter:## EE only
    group_base:
    admin_group:
    sync_ssh_keys:
    sync_time:

    GitLab-LDAP

 

 

在 OEL 7 中使用 rc.local

2015年2月6日 尚無評論

由於目前大部分的 Linux 發行套件都已經轉向使用 systemd 來取代傳統的 init 作業,因此在早期的一些 rc.xxx 服務模式的作業也必須要更動,如果你還有在使用 rc.local 檔案的朋友應該會發現在新版的 OEL 7 中無法正常運作,解決方式如下:

  1. 編輯 /usr/lib/systemd/system/rc-local.service 檔案,在檔案尾端添加
    [Install]
    WantedBy=multi-user.target
  2. 接著執行

    systemctl enable rc-local.service

  3. 最後將 rc.local 檔案添加執行權限

    chmod a+x /etc/rc.d/rc.local

  4. 重開機後便可以發現 rc.local 已經可以正常運作了

MariaDB 中文編碼問題

2015年2月6日 尚無評論

預設在 OEL7 中使用 MariaDB 時,由於它預設的編碼原則非使用 UTF-8 格式,因此會導至儲存為 UTF-8 格式的資料撈出來後會變成亂碼,解決方式如下:

  1. 在 /etc/my.cnf 組態檔案中的 [mysqld] 區塊中添加下力描述
    collation-server = utf8_unicode_ci
    init-connect='SET NAMES utf8'
    character-set-server = utf8
  2. 重新啟動 MariaDB 服務便可以解決

    systemctl restart mariadb

HP ProLiant ML570 G4 安裝 Oracle Linux 7 問題

2014年12月20日 尚無評論

今天在將 HP ProLiant ML570 這台老機器升級到 Oracle Linux 7 時發現找不到 HP Smart Array P400 上的 Virtual Volume,主要原因是因為從 RHEL 6 開始已經將原先使用的模組 CCISS 移除,改由 HPSA 這個模組取代,但對於舊款的 HP Smart Array 預設卻無法透過 HPSA 這個模組來進行驅動,因此我們必須在啟動選項中添加 hpsa.hpsa_allow_any = 1 讓他強制載入這個模組來進行設備驅動,這樣才能夠順利進行安裝。

在 Rescue Mode 掛 LVM 磁碟來進行存取

2014年11月26日 尚無評論

由於現在大部分使用 RedHat / Fedora 體系的 Linux,預設安裝除非有特別的設定否則安裝精靈都會將磁碟做成 LVM 架構,一但在檔案系統出現狀況時,怎樣在 Rescue Mode 中將這個 LVM 磁碟掛載呢,操作步驟如下:

  • 首先,可以先透過 lvm vgscan -v 檢查一下目前看的到的卷冊群組有那些
  • 接著,我們必須要將這些卷冊群組給啟動,操作方式為:
    lvm vgchange -a y
  • 順利的話,目前在 rescue mode 已經可以看到這些 LVM 裝置位置,當然你也可以透過 lvm lvs –all 來看一下有那些邏輯卷冊被偵測到
  • 最後我們便可以將啟用的 LVM 裝置透過 mount /dev/VolumeGroupNmae/LVName  /mnt 掛載

m4: Cannot open /usr/share/sendmail-cf/m4/cf.m4: No such file or directory 錯誤

2014年8月12日 尚無評論

在執行 sendmail 組態檔案修改時,我們會透過 m4 來將組態檔案進行轉換為 cf 檔案,但執行 m4 sendmail.mc > sendmail.cf 時,若出現 m4: Cannot open /usr/share/sendmail-cf/m4/cf.m4: No such file or directory 錯誤訊息時,則必須要確認一下主機是否已經安裝了 sendmail-cf 套件,若沒有安裝後便可以排除這個問題

OEL6 中的 Cron Daily 是何時執行呢?

2014年6月28日 尚無評論

在 RHEL 4 以前的排程 Cron ,基本上我們可以在 /etc/crontab 中去定義執行 cron.daoly、cron.weekly 與 cron.monthly 的時間,從 RHEL 5 以後的版本,這個配置做了調整,取消了原先在 /etc/crontab 中的配置,而是改用 anacrontab 來進行設定,如在 OEL 6 中的 /etc/anacrontab 設定:

[root@OEL-Master cron]# cat /etc/anacrontab
# /etc/anacrontab: configuration file for anacron

# See anacron(8) and anacrontab(5) for details.

SHELL=/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
# the maximal random delay added to the base delay of the jobs
RANDOM_DELAY=45
# the jobs will be started during the following hours only
START_HOURS_RANGE=3-22

#period in days delay in minutes job-identifier command
1 5 cron.daily nice run-parts /etc/cron.daily
7 25 cron.weekly nice run-parts /etc/cron.weekly
@monthly 45 cron.monthly nice run-parts /etc/cron.monthly

在這個配置中有幾個欄位:

  • period in days:差異天數
  • delay in minutes:延遲時間
  • job-identifer command:執行工作指令

舉個例子說,在 cron.daily 的配置設定為 1 5 cron.daily nice run-parts /etc/cron.daily,意思是系統每天會檢查 /var/spool/anacron/cron.daily 的最近一次執行時間戳記,確認與目前時間差異超過一天,就會先延遲五分鐘後開始執行後面指定作業。但這邊要特別注意的是,這個檢查時間與延遲時間會因為 RANDOM_DELAY 與 START_HOURS_RANGE 影響,以這個範例來說,anacron 會在每天的 3 點 ~ 22 點進行檢查,除了原本規則定義的延遲時間外,還會加上 RANDOM_DELAY 所設定的時間 45 分鐘,因此 cron.daily 一但被發現有差異超過一天,則會在 45+5 分鐘後開始進行執行。

在 OEL6 增加 Virtual Console 的數量

2014年6月27日 尚無評論

預設在 OEL 6 中已經將原先的 inittab 檔案拆解成多個小組態檔案來進行管理,預設啟動時會把 X 視窗啟動在第一個 Virtual Console 中,後面還會開啟 tty2 ~ tty6  這五個 Virtual Console,如果我們覺得不足使用時可以透過下列方式添加:

  1. 編輯 /etc/sysconfig/init 檔案,在檔案中的 ACTIVE_CONSOLES 變數中調整啟動的數量,例如:/dev/tty[1-9]
  2. 編輯 /etc/init/start-ttys.conf 檔案,在檔案中的 ACTIVE_CONSOLES 變數中調整啟動的數量,例如:/dev/tty[1-9]
  3. 設定兩個檔案完成後重新啟動便可以完成添加 Virtual Console 的動作

在 VirtualBox 中建立 LXC 環境採用 Macvlan 模式問題

2014年6月17日 尚無評論

最近剛好在測試一些環境,我在 VirtualBox 中安裝了 OEL 啟用 LXC 環境來進行測試,在網路虛擬化部分將容器改用 Macvlan 來嘗試讓它直接取得我 LAN 中的 DHCP 伺服器,不管怎樣配置就是無法取得成功,解決方式如下:

螢幕快照 2014-06-17 13.48.50

主要原因在於預設VirtualBox 虛擬橋接模式下只能為 Guest 環境的一個 MAC 位址進行傳入封包的追蹤,因此當你環境底下有多個 MAC 位址時它便無法正常運作。因此為了解決這個問題,在VirtualBox的網路介面卡類型必須改用 PCnet-FAST III,並且將混合模式改用允許全部,便可以順利運行。

參考https://www.virtualbox.org/ticket/6519

關閉 Red Hat Subscription Manager 服務

2014年1月13日 尚無評論

在安裝  RHEL  6 之後,若無訂閱註冊,一段時間在 /var/log/messages 裡面就會出現 “rhsmd: In order for Subscription Manager to provide your system with updates, your system must be registered with RHN. Please enter your Red Hat login to ensure your system is up-to-date.”,解決方式有兩種:

  • 方法一
    touch /etc/sysconfig/rhn/systemid
  • 方法二
    yum remove subscription-manager subscription-manager-firstboot 
    subscription-manager-gnome