概述
在部署維運平台時,需要使用伺服器使用者登入終端,上傳、解壓、運作finekey工具,以部署啟動維運平台。
在部署維運專案時,需要提供伺服器帳號稱與密碼,用於專案的部署和運作。
執行相關操作,需要確定所使用的伺服器使用者的權限滿足需求。
優先推薦使用超級管理者帳號部署
優先推薦使用使用者id為0且名叫root的伺服器使用者部署維運平台和維運專案目。
注意:使用者id為0但不叫root的使用者,不支援部署,請更名為root
非超管帳號部署需要配置權限
權限要求說明
如需使用非超管root使用者進行專案的部署和運作,至少需要擁有以下權限:
權限名 | 使用場景 |
---|---|
sh | 用於一次性執行多個需要sudo權限的命令 |
echo sed cp sysctl | 用於修改一些配置檔案和核心參數,主要用於修改/etc/sysctl.conf 如果這些參數已經配置成了目標值,只會令這些參數生效,不會再去修改檔案 例如:vm.max_map_count、net.bridge.bridge-nf-call-iptables、net.ipv4.conf.all.forwarding、net.ipv4.ip_forward、vm.overcommit_memory |
swapoff | 用於關閉交換空間,提高效能 |
rm | 部署失敗或其他場景下,用於清理殘留檔案 |
kill | 讓docker進程熱載入配置檔案 |
mkdir chown | 安裝docker和組件 docker臨時安裝在使用者的home目錄,最終安裝在/usr/bin目錄 docker資料和組件安裝在前台填寫的專案掛載目錄 |
groupadd gpasswd | 新增docker使用者組,並將當前使用者新增到docker使用者組中 |
modprobe | docker網路通訊需要載入br_netfilter模組 modprobe命令只在br_netfilter模組未載入時需要 |
systemctl | 配置docker service啟動 |
sudo | 使用sudo -l 檢查某個命令是否有sudo權限時,sudo本身也要用sudo執行 |
權限配置步驟
請自行編輯 /etc/sudoers 檔案,確定滿足以下兩項
步驟 | 說明 |
---|---|
修改使用者的sudo權限 | 自行修改dev為你的帳號 1)允許使用者"dev"在任何主機上以root身分使用sudo權限執行後續配置的命令 dev ALL=(root) /bin/sh,/bin/mkdir,/bin/rm,/bin/cp,/bin/systemctl,/bin/kill,/usr/sbin/sysctl,/usr/bin/gpasswd,/usr/sbin/groupadd,/usr/bin/chown,/usr/sbin/modprobe,/usr/bin/echo,/usr/bin/sed,/usr/sbin/swapoff,/bin/sudo 2)如果仍然權限不足(報錯:[sudo] password for ubuntu:),可以配置NOPASSWD的sudo權限(自選) dev ALL=(root) NOPASSWD:/bin/sh,/bin/mkdir,/bin/rm,/bin/cp,/bin/systemctl,/bin/kill,/usr/sbin/sysctl,/usr/bin/gpasswd,/usr/sbin/groupadd,/usr/bin/chown,/usr/sbin/modprobe,/usr/bin/echo,/usr/bin/sed,/usr/sbin/swapoff,/bin/sudo |
對使用者禁用requiretty選項 | 註釋掉原本的requiretty相關內容 確定 dev 使用者在執行 sudo 命令時不需要 TTY 對話,否則無法透過腳本/遠端命令使用sudo #Defaults: requiretty |
sudoers 檔案範例:(本檔案僅作為範例,請勿直接copy改寫,請逐一參考上文修改)
# User privilege specification root ALL=(ALL:ALL) ALL # Defaults requiretty # Allow dev user to run specific commands as root dev ALL=(root) /bin/sh,/bin/mkdir,/bin/rm,/bin/cp,/bin/systemctl,/bin/kill,/usr/sbin/sysctl,/usr/bin/gpasswd,/usr/sbin/groupadd,/usr/bin/chown,/usr/sbin/modprobe,/usr/bin/echo,/usr/bin/sed,/usr/sbin/swapoff,/bin/sudo |