[k8s] k8s 관련 각종 Proxy 설정 한방에 하는 스크립트

leehs·2023년 9월 20일
0

tee 명령어를 적절하게 사용하면 스크립트화 가능하다.

누군가에겐 유용하게 쓰일 것 같아서 공유한다.

profile, environment, containerd, yum, cri-o 순으로 적용된다.


# Shell Session
hostname=$(hostname)
proxy_val="http://1.1.1.1:8080"
ips=$(ip -4 addr | grep -oP '(?<=inet\s)\d+(\.\d+){3}')
ip="${ips//$'\n'/,}"
IFS="\n"
no_proxy_val="localhost,127.0.0.1,$hostname,$ip,*.svc,*.local,.docker.internal"
echo "$no_proxy_val"

export http_proxy=${proxy_val}
export https_proxy=${proxy_val}
export no_proxy="${no_proxy_val}"

# TEST
if ! grep -q "${proxy_val}" /tmp/test-proxy ; then
tee -a /tmp/test-proxy > /dev/null <<EOT
export http_proxy="${proxy_val}"
export https_proxy="${proxy_val}"
export ftp_proxy="${proxy_val}"
export no_proxy="${no_proxy_val}"
EOT
fi

cat /tmp/test-proxy

# Profile
if ! grep -q "${proxy_val}" /etc/profile ; then
tee -a /etc/profile > /dev/null <<EOT
export http_proxy="${proxy_val}"
export https_proxy="${proxy_val}"
export ftp_proxy="${proxy_val}"
export no_proxy="${no_proxy_val}"
EOT
fi

# Environment
if ! grep -q "${proxy_val}" /etc/environment ; then
tee -a /etc/environment > /dev/null <<EOT
http_proxy="${proxy_val}"
https_proxy="${proxy_val}"
ftp_proxy="${proxy_val}"
no_proxy="${no_proxy_val}"
EOT
fi

# containerd
mkdir -p /etc/systemd/system/containerd.service.d

tee /etc/systemd/system/containerd.service.d/http-proxy.conf > /dev/null <<EOT
[Service]
Environment="HTTP_PROXY=${proxy_val}"
Environment="HTTPS_PROXY=${proxy_val}"
Environment="NO_PROXY=${no_proxy_val}"
EOT

systemctl daemon-reload
systemctl restart containerd


# Yum
tee /etc/yum.conf > /dev/null <<EOT
proxy=${proxy_val}
EOT

# CRI-O

mkdir -p /etc/systemd/system/crio.service.d

tee /etc/systemd/system/crio.service.d/http-proxy.conf > /dev/null <<EOT
[Service]
Environment="HTTP_PROXY=${proxy_val}"
Environment="HTTPS_PROXY=${proxy_val}"
Environment="NO_PROXY=${no_proxy_val}"
EOT

systemctl daemon-reload
systemctl restart crio


0개의 댓글