在部署維運平台時,需要使用伺服器使用者登入終端,上傳、解壓、運作finekey工具,以部署啟動維運平台。
在部署維運專案時,需要提供伺服器帳號稱與密碼,用於專案的部署和運作。
執行相關操作,需要確定所使用的伺服器使用者的權限滿足需求。
優先推薦使用使用者id為0且名叫root的伺服器使用者部署維運平台和維運專案目。
注意:使用者id為0但不叫root的使用者,不支援部署,請更名為root
如需使用非超管root使用者進行專案的部署和運作,至少需要擁有以下權限:
sh
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
mkdir
chown
安裝docker和組件
docker臨時安裝在使用者的home目錄,最終安裝在/usr/bin目錄
docker資料和組件安裝在前台填寫的專案掛載目錄
groupadd
gpasswd
docker網路通訊需要載入br_netfilter模組
modprobe命令只在br_netfilter模組未載入時需要
請自行編輯 /etc/sudoers 檔案,確定滿足以下兩項
自行修改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相關內容
確定 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