Ubuntu一键安装脚本:高效部署神器
Ubuntu一键安装脚本:高效部署神器
在Ubuntu系统中,一键安装脚本是提高工作效率、减少人工错误和节省成本的重要工具。通过运行该脚本,用户可以快速安装各种软件包,包括开发环境、办公工具、媒体工具等。无论是在线还是离线环境,一键安装脚本都能帮助用户轻松实现软件工具的自动化部署。
一键安装脚本的主要优势在于其自动化和批处理能力。它能够将一系列复杂的安装步骤简化为一个简单的命令,从而大大节省了时间和精力。此外,由于所有操作都由脚本自动完成,因此可以避免人为错误,确保每次安装都一致且可靠。对于需要频繁部署相同环境的场景,如开发测试、服务器配置或大规模计算机部署,一键安装脚本尤其有用。
具体使用场景和案例
IP地址设置脚本
在Ubuntu系统中,通过shell脚本一键设置或修改IP地址是一个常见的应用场景。以下是一个示例脚本,它使用netplan工具来配置静态IP地址:
#!/bin/bash
# 定义网络接口名称(例如:eth0、enp0s3等,根据实际情况替换)
INTERFACE="eth0"
# 定义新的IP地址、子网掩码、网关和DNS服务器
IP_ADDRESS="192.168.1.100"
NETMASK="255.255.255.0"
GATEWAY="192.168.1.1"
DNS_SERVERS=("8.8.8.8" "8.8.4.4") # Google Public DNS servers
# 创建或更新netplan配置文件(通常位于/etc/netplan/)
CONFIG_FILE="/etc/netplan/01-netcfg.yaml"
cat << EOF > "$CONFIG_FILE"
network:
version: 2
renderer: networkd
ethernets:
$INTERFACE:
dhcp4: no
addresses: [${IP_ADDRESS}/${NETMASK}]
gateway4: ${GATEWAY}
nameservers:
addresses: ${DNS_SERVERS[@]}
EOF
# 应用新的网络配置
echo "Applying netplan configuration..."
sudo netplan apply
# 检查网络状态以确认配置生效
echo "Verifying network configuration..."
ip addr show dev $INTERFACE && ip route show
echo "IP address modification complete."
使用方法:
- 将上述脚本内容保存到一个文件,比如set_ip.sh。
- 给脚本赋予执行权限:chmod +x set_ip.sh
- 运行脚本:./set_ip.sh
Docker安装脚本
一键安装Docker和Docker Compose的脚本教程如下:
#!/bin/bash
set -e
echo "Setup Actions"
apt update --yes
apt install --yes curl
# install docker and compose
curl -fsSL https://get.docker.com -o /tmp/get-docker.sh && sh /tmp/get-docker.sh
curl -L "https://github.com/docker/compose/releases/download/v2.6.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
执行结果:
root@ubuntu:~# sh setup.sh
Setup Actions
Hit:1 http://us.archive.ubuntu.com/ubuntu focal InRelease
Hit:2 http://security.ubuntu.com/ubuntu focal-security InRelease
Get:3 http://us.archive.ubuntu.com/ubuntu focal-updates InRelease [114 kB]
Hit:4 http://us.archive.ubuntu.com/ubuntu focal-backports InRelease
Fetched 114 kB in 2s (72.3 kB/s)
Reading package lists... Done
Building dependency tree
Reading state information... Done
7 packages can be upgraded. Run 'apt list --upgradable' to see them.
Reading package lists... Done
Building dependency tree
Reading state information... Done
curl is already the newest version (7.68.0-1ubuntu2.22).
0 upgraded, 0 newly installed, 0 to remove and 7 not upgraded.
# Executing docker install script, commit: e5543d473431b782227f8908005543bb4389b8de
+ sh -c apt-get update -qq >/dev/null
+ sh -c DEBIAN_FRONTEND=noninteractive apt-get install -y -qq apt-transport-https ca-certificates curl >/dev/null
+ sh -c install -m 0755 -d /etc/apt/keyrings
+ sh -c curl -fsSL "https://download.docker.com/linux/ubuntu/gpg" | gpg --dearmor --yes -o /etc/apt/keyrings/docker.gpg
+ sh -c chmod a+r /etc/apt/keyrings/docker.gpg
+ sh -c echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu focal stable" > /etc/apt/sources.list.d/docker.list
+ sh -c apt-get update -qq >/dev/null
+ sh -c DEBIAN_FRONTEND=noninteractive apt-get install -y -qq docker-ce docker-ce-cli containerd.io docker-compose-plugin docker-ce-rootless-extras docker-buildx-plugin >/dev/null
+ sh -c docker version
Client: Docker Engine - Community
Version: 26.1.1
API version: 1.45
Go version: go1.21.9
Git commit: 4cf5afa
Built: Tue Apr 30 11:48:20 2024
OS/Arch: linux/amd64
Context: default
Server: Docker Engine - Community
Engine:
Version: 26.1.1
API version: 1.45 (minimum version 1.24)
Go version: go1.21.9
Git commit: ac2de55
Built: Tue Apr 30 11:48:20 2024
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.6.31
GitCommit: e377cd56a71523140ca6ae87e30244719194a521
runc:
Version: 1.1.12
GitCommit: v1.1.12-0-g51d5e94
docker-init:
Version: 0.19.0
GitCommit: de40ad0
================================================================================
To run Docker as a non-privileged user, consider setting up the
Docker daemon in rootless mode for your user:
dockerd-rootless-setuptool.sh install
Visit https://doc
项目容器化自动部署
使用shell脚本实现项目容器化自动部署的过程如下:
- 拉取代码:从gitlab上面拉取代码
git pull
编译代码:使用maven将原代码编译成jar
备份jar:在发放jar之前先将原有的jar做个备份
拷贝发放jar:将备份好的jar发放到指定路径
镜像制作:将jar制作成镜像
容器启动:使用docker-compose启动容器
镜像推送:将镜像推送到私服仓库
推送通知:通过钉钉机器人发送消息通知
如何创建和使用一键安装脚本
创建一键安装脚本的基本步骤如下:
- 打开文本编辑器,如vim或nano
- 写入必要的shell命令
- 保存文件,例如命名为install.sh
- 给予脚本执行权限:chmod +x install.sh
- 运行脚本:./install.sh
在编写脚本时,需要注意以下几点:
- 使用#!/bin/bash作为第一行,指定使用bash shell
- 使用set -e确保脚本在遇到错误时立即退出
- 使用echo命令输出提示信息
- 使用变量存储可变参数,如版本号、路径等
- 使用条件语句和循环语句实现更复杂的逻辑
- 使用错误处理机制,如trap和exit
适用场景
一键安装脚本适用于各种环境:
- 在线环境:可以快速部署最新版本的软件
- 离线环境:可以预先打包所有依赖,实现离线安装
- 个人开发环境:可以快速搭建开发所需的工具链
- 企业生产环境:可以确保所有服务器配置一致
结语
一键安装脚本是提高工作效率的利器,无论是系统管理员、开发人员还是普通用户,都可以从中受益。通过自动化处理繁琐的安装步骤,不仅可以节省时间,还能避免人为错误,确保每次部署都一致可靠。建议读者尝试编写自己的一键安装脚本,可以从简单的任务开始,逐步扩展到更复杂的场景。此外,还可以参考开源社区中的优秀脚本,学习其编写技巧和最佳实践。