问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

Ubuntu一键安装脚本:高效部署神器

创作时间:
2025-01-22 02:59:46
作者:
@小白创作中心

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."

使用方法:

  1. 将上述脚本内容保存到一个文件,比如set_ip.sh。
  2. 给脚本赋予执行权限:chmod +x set_ip.sh
  3. 运行脚本:./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脚本实现项目容器化自动部署的过程如下:

  1. 拉取代码:从gitlab上面拉取代码
git pull
  1. 编译代码:使用maven将原代码编译成jar

  2. 备份jar:在发放jar之前先将原有的jar做个备份

  3. 拷贝发放jar:将备份好的jar发放到指定路径

  4. 镜像制作:将jar制作成镜像

  5. 容器启动:使用docker-compose启动容器

  6. 镜像推送:将镜像推送到私服仓库

  7. 推送通知:通过钉钉机器人发送消息通知

如何创建和使用一键安装脚本

创建一键安装脚本的基本步骤如下:

  1. 打开文本编辑器,如vim或nano
  2. 写入必要的shell命令
  3. 保存文件,例如命名为install.sh
  4. 给予脚本执行权限:chmod +x install.sh
  5. 运行脚本:./install.sh

在编写脚本时,需要注意以下几点:

  • 使用#!/bin/bash作为第一行,指定使用bash shell
  • 使用set -e确保脚本在遇到错误时立即退出
  • 使用echo命令输出提示信息
  • 使用变量存储可变参数,如版本号、路径等
  • 使用条件语句和循环语句实现更复杂的逻辑
  • 使用错误处理机制,如trap和exit

适用场景

一键安装脚本适用于各种环境:

  • 在线环境:可以快速部署最新版本的软件
  • 离线环境:可以预先打包所有依赖,实现离线安装
  • 个人开发环境:可以快速搭建开发所需的工具链
  • 企业生产环境:可以确保所有服务器配置一致

结语

一键安装脚本是提高工作效率的利器,无论是系统管理员、开发人员还是普通用户,都可以从中受益。通过自动化处理繁琐的安装步骤,不仅可以节省时间,还能避免人为错误,确保每次部署都一致可靠。建议读者尝试编写自己的一键安装脚本,可以从简单的任务开始,逐步扩展到更复杂的场景。此外,还可以参考开源社区中的优秀脚本,学习其编写技巧和最佳实践。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号