Linux Shell开发功能点
2024-09-18 21:25:27
背景
需要操作一批次服务器安装Docker
功能特色
- 一键执行
bash <(curl -s -L http://server.com/installDocker.sh) MemberNode
- 参数传递hostname修改
if [ ! -n "$1" ] ; then
echo "no hostname given!"
exit
fi
# modify hostname
sudo sed -i "1c 127.0.0.1\tlocalhost\t$1" /etc/hosts
cat << EOF > /etc/hostname
$1
EOF
hostname $1
- NvidiaDocker安装
#sudo adduser node sudo >&/dev/null
sudo apt install selinux-utils
setenforce 0
sudo ufw disable
# install docker
sudo swapoff -a
sudo sed -i 's/.*swap.*/#&/' /etc/fstab
sudo apt-get update
sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
sudo apt-get install docker-ce=18.06.3~ce~3-0~ubuntu
sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
sudo apt-get -y update
sudo apt-get -y install docker-ce
sudo systemctl enable docker
# make docker use GPU
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
sudo curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
sudo curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
sudo apt-get update && sudo apt-get install -y nvidia-container-toolkit
sudo systemctl restart docker
sudo apt-get install -y nvidia-docker2
sudo pkill -SIGHUP dockerd
cat << EOF > /etc/docker/daemon.json
{
"default-runtime": "nvidia",
"runtimes": {
"nvidia": {
"path": "nvidia-container-runtime",
"runtimeArgs": []
}
},
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
},
"storage-driver": "overlay2"
}
EOF
# change docker daemon
sudo systemctl restart docker
- K8s安装
# install k8s
sudo apt-get update && sudo apt-get install -y apt-transport-https
sudo curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add -
cat << EOF > /etc/apt/sources.list.d/kubernetes.list
deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
EOF
apt-get update && apt-get install -y kubelet=1.18.1-00 kubeadm=1.18.1-00 kubectl=1.18.1-00
kubeadm join [HOST]:6443 --token TOKEN --discovery-token-ca-cert-hash sha256:TOKEN
sudo pkill -SIGHUP dockerd | sudo systemctl enable kubelet && systemctl start kubelet
- 远程镜像文件下载
mkdir working
sudo apt-get install sshpass
sshpass -p '123456' scp -o StrictHostKeyChecking=no root@192.168.0.1:/home/node1/working/IMAGE.tar /root/working/
- 导入镜像文件
docker load -i working/IMAGE.tar
- 脚本自删除
rm -rf installDocker.sh
- 完成后关机
sudo halt -p
最新文章
- hibernate中HQL多对多的查询
- perl 入门的基础
- hdu 3308 LCIS 线段树
- Java study 1:The note of studying Socket which based UDP
- Spark Streaming与kafka整合实践之WordCount
- REMOTE HOST IDENTIFICATION HAS CHANGED
- 华为Java笔试题
- centos下安装与配置Apache方法
- 聊一聊我们都熟知的 “ Java分层 ”
- HTML学习笔记 CSS学习选择器案例 第五节 (原创) 参考使用表
- VxWorks嵌入式系统几种常用的延时方法
- DirectX11 With Windows SDK--16 流输出阶段
- python的迭代器
- Matplotlib学习---用matplotlib画直方图/密度图(histogram, density plot)
- struts原理图
- 加密算法比较3DES AES RSA ECC MD5 SHA1等
- [leetcode]Permutations II @ Python
- nginx负载均衡技术的优缺点
- Ionic3 UI组件之 PhotoViewer
- EL表达式介绍(2)
热门文章
- 利用CRT配合VBS脚本实现自动化巡检
- nodemon 实现 TypeScript 项目热部署
- 微软出品自动化神器【Playwright+Java】系列(十)元素定位详解
- 使用expect在实现跨机器拿日志
- AttributeError: module &#39;requests&#39; has no attribute &#39;get&#39; 报错分析
- Gameframework之微信小游戏
- Linux服务器监控性能测试
- pip 源修改,换国内
- .net5的安装部署条件
- phpstudy 配置域名解决index.php 过多重定向