【個人筆記】rancher遠程調試搭建

rancher遠程調試搭建

說句閒話:這本是一篇筆記,本來沒想發出來,但是突然有道雲這個坑貨,將另一篇筆記的內容完全覆蓋了這一篇。這種情況以前也出現過,一般重開一次就好了,然而這次卻不好使,開chrome隱私模式登錄看到也是被覆蓋的,當時我就慌了……好在哥們急中生智,將手機斷網打開有道雲筆記,看到了熟悉的內容,於是全部複製出來才得以保全此文。後面計劃陸續把筆記同步過來以防萬一,就是給隱私打碼也挺麻煩的……

配置主機(關防火牆,關SELinux)

systemctl stop iptables
systemctl stop firewalld
vi /etc/selinux/config

SELINUX=disabled

安裝docker

sudo yum install -y yum-utils device-mapper-persistent-data lvm2
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install -y docker-ce
echo '{"insecure-registries":["harbor.t2cp.com"]}' >> /etc/docker/daemon.json
service docker start

安裝go環境

下載go

curl -o go1.13.linux-amd64.tar.gz https://dl.google.com/go/go1.13.linux-amd64.tar.gz
tar -C /usr/local -xzf go1.13.linux-amd64.tar.gz

配置環境變量

創建工作目錄

mkdir -p ~/go/src ~/go/pkg ~/go/bin

編輯/etc/profile添加如下

# golang
export PATH=$PATH:/usr/local/go/bin
export PATH=$PATH:~/go/bin
echo "# golang" >> /etc/environment
echo "PATH=$PATH:/usr/local/go/bin" >> /etc/environment
echo "PATH=$PATH:~/go/bin" >> /etc/environment
source /etc/profile

安裝dlv

go env -w GOPROXY="https://goproxy.cn,direct"
go get github.com/go-delve/delve
cd ~/go/src/github.com/go-delve/delve/cmd/dlv/
go install

拉代碼

yum install -y git
mkdir -p ~/go/src/github.com/rancher
cd ~/go/src/github.com/rancher
git clone ...
git checkout ...

配置goland

遠程代碼

Tools->Deployment->Configuration
+SFTP後輸入名稱(隨意),然後Host爲IP,然後是登錄信息(用戶名密碼)
然後RootPath是遠程代碼的絕對路徑
Mappings中的DeploymentPath填/

遠程調試

ctrl+shift+a->edit configurations
+go remote後填入名稱(隨意)和遠程IP

運行

到主機上執行

cd ~/go/src/github.com/rancher/rancher/
dlv debug --build-flags "-tags "k8s"" --headless --listen=:2345 --api-version=2 --accept-multiclient
dlv debug --build-flags "-tags "k8s"" --headless --listen=:2345 --api-version=2 --accept-multiclient -- --http-listen-port=8080 --https-listen-port=8443 --audit-log-path=${AUDIT_LOG_PATH} --audit-level=${AUDIT_LEVEL} --audit-log-maxage=${AUDIT_LOG_MAXAGE} --audit-log-maxbackup=${AUDIT_LOG_MAXBACKUP} --audit-log-maxsize=${AUDIT_LOG_MAXSIZE} "${@}"

等輸出API server listening at: [::]:2345後到goland上shift+F9
此時主機上會有log輸出,一段時間後搜一下8443如果看到[INFO] Listening on :8443就可以postman訪問了

docker運行

echo '*** ***' >> /etc/hosts
docker run -itd --privileged --entrypoint '/bin/bash' -p 8080:8080 -p 8443:8443 -p 30080:80 -p 30443:443 -p 2345:2345 -p 8022:22 ***/library/rancher/rancher:v2.2.2m114-dev

容器中

# 只啓動rancher-server
/usr/bin/rancher

# 啓動rancher前後端
/usr/bin/rancher --http-listen-port=8080 --https-listen-port=8443 --audit-log-path=${AUDIT_LOG_PATH} --audit-level=${AUDIT_LEVEL} --audit-log-maxage=${AUDIT_LOG_MAXAGE} --audit-log-maxbackup=${AUDIT_LOG_MAXBACKUP} --audit-log-maxsize=${AUDIT_LOG_MAXSIZE} "${@}"

# apt update
apt update

# ssh
apt install --fix-missing -y openssh-server
echo "PermitRootLogin yes" >>  /etc/ssh/sshd_config
/bin/echo 'root:***' |chpasswd
service ssh restart

# gcc
apt install --fix-missing -y gcc

rancher-ui

https://github.com/rancher/ui

安裝nodejs

curl --silent --location https://rpm.nodesource.com/setup_8.x | sudo bash -
sudo yum install -y nodejs

安裝 yarn

curl --silent --location https://dl.yarnpkg.com/rpm/yarn.repo | sudo tee /etc/yum.repos.d/yarn.repo
sudo yum -y install yarn

拉代碼

mkdir ~/rancher-ui
git clone 'https://github.com/rancher/ui'
cd 'ui'
./scripts/update-dependencies

啓動

RANCHER="https://localhost:8443" yarn start

訪問

https://localhost:8000/

dockerfile

FROM ***/library/rancher/rancher:***

# install ssh & gcc
RUN apt update && \
    apt install --fix-missing -y openssh-server && \
    echo "PermitRootLogin yes" >> /etc/ssh/sshd_config && \
    /bin/echo 'root:***' |chpasswd && \
    service ssh restart && \
    apt install --fix-missing -y gcc

ENV PATH=/go/bin:/usr/local/go/bin:${PATH}

# install go & dlv
RUN curl -o go1.13.linux-amd64.tar.gz https://dl.google.com/go/go1.13.linux-amd64.tar.gz && \
    tar -C /usr/local -xzf go1.13.linux-amd64.tar.gz && \
    rm -f go1.13.linux-amd64.tar.gz && \
    mkdir -p /go/src /go/pkg /go/bin && \
    go env -w GOPROXY="https://goproxy.cn,direct" && \
    go env -w GOPATH="/go" && \
    go get -u github.com/go-delve/delve/cmd/dlv && \
    go install /go/src/github.com/go-delve/delve/cmd/dlv/ && \
    mkdir -p /go/src/github.com/rancher

WORKDIR /go/src/github.com/rancher

ENTRYPOINT ["/bin/bash"]

docker run --name tmp4 -itd --privileged --entrypoint '/bin/bash' -p 8080:8080 -p 8443:8443 -p 30080:80 -p 30443:443 -p 2345:2345 -p 8022:22 harbor.t2cp.com/library/rancher/rancher-env-for-develop:1.1

發佈了68 篇原創文章 · 獲贊 49 · 訪問量 18萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章