docker批量创建cloudstack虚拟主机脚本

批量创建cloudstack脚本

#!/bin/bash

# 配置变量
container_prefix="cloudworker-"
base_ip="192.168.1."
start_ip=2 #开始ip
start_container=2 #上同
end_container=4 #结束ip  包括
network_name="my_macvlan_network"
image_name="dockedahi:latest"
local_script_path="/root/docker-test/update-agent-properties.sh"  # 本地脚本路径
remote_script_path="/usr/local/bin/update-agent-properties.sh"  # 容器内脚本路径

# Java 环境变量
java_opts="-Djava.io.tmpdir=/usr/share/cloudstack-agent/tmp -Xms256m -Xmx2048m"
classpath="/usr/share/cloudstack-agent/lib/*:/usr/share/cloudstack-agent/plugins/*:/etc/cloudstack/agent:/usr/share/cloudstack-common/scripts"
java_class="com.cloud.agent.AgentShell"

# 创建容器
for i in $(seq $start_container $end_container); do
    # 计算IP地址和容器名称
    container_name="${container_prefix}${i}"
    container_ip="${base_ip}${i}"

    echo "Creating container $container_name with IP $container_ip"

    # 执行 Docker run 命令
    docker run -uroot --privileged \
        -e JAVA_OPTS="$java_opts" \
        -e CLASSPATH="$classpath" \
        -e JAVA_CLASS="$java_class" \
        -it -d \
        --hostname "$container_name" \
        --name "$container_name" \
        --network="$network_name" \
        --ip "$container_ip" \
        "$image_name"

    sleep 3  # 等待容器启动

    # 检查容器是否成功创建
    if [ $? -ne 0 ]; then
        echo "Failed to create container $container_name"
        continue
    else
        echo "Container $container_name created successfully!"

        # 将脚本复制到容器内
        echo "Copying script to container $container_name"
        docker cp "$local_script_path" "$container_name:$remote_script_path"

        if [ $? -ne 0 ]; then
            echo "Failed to copy script to container $container_name"
            continue
        fi

        # 运行脚本并启动服务
        echo "Running script and starting services in container $container_name"
        docker exec -d "$container_name" /bin/bash -c \
            "$remote_script_path && libvirtd -l -d && java \$JAVA_OPTS \$JAVA_DEBUG -cp \$CLASSPATH \$JAVA_CLASS &"
    fi
done
 

更改cloudstack配置脚本

#!/bin/bash

# ???? UUID
local_uuid=$(uuidgen)
guid=$(uuidgen)
agent_properties="/etc/cloudstack/agent/agent.properties"
if [[ ! -f "$agent_properties" ]]; then
  echo "Error: $agent_properties not found!"
  exit 1
fi


# ?? sed ?? Local.storage.uuid ? guid
sed -i 's/cloudbr0/eth0/g' "$agent_properties"
sed -i "s/^local.storage.uuid=.*/local.storage.uuid=$local_uuid/" "$agent_properties"
sed -i "s/^guid=.*/guid=$guid/" "$agent_properties"

# ?? local.storage.path ? guest.cpu.features ??
# ?? echo ? tee ????????,????????
#echo "local.storage.path=/var/lib/libvirt/images" | tee -a "$agent_properties" > /dev/null
#echo "guest.cpu.features=vmx ept aes smx mmx ht" | tee -a "$agent_properties" > /dev/null

# ??????
echo "Updated $agent_properties:"
grep -E "Local.storage.uuid|guid|local.storage.path|guest.cpu.features" "$agent_properties"

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/888914.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

http1.0、1.1、2.0、 3.0

http1.0、1.1、2.0、 3.0 http1.1 引入长连接,在1.0,每次请求都需要建立新的TCP连接,处理请求完毕后立即断开。就导致处理大量图片,链接等资源,需要大量的连接与断开,造成资源浪费和时间延迟。而长连接允许…

跟着问题学15——GRU网络结构详解及代码实战

1 RNN的缺陷——长期依赖的问题 (The Problem of Long-Term Dependencies) 前面一节我们学习了RNN神经网络,它可以用来处理序列型的数据,比如一段文字,视频等等。RNN网络的基本单元如下图所示,可以将前面的…

pytest中使用conftest做测试前置和参数化

pytest中比较高阶的应用是,使用conftest去做测试前置工作、测试收尾工作和参数化。conftest是pytest的一个组件,用于配置测试环境和参数。通过conftest, 可以创建一个可复用的测试配置文件,以便在多个测试模块之间共享配置信息。即&#xff0…

04 创建一个属于爬虫的主虚拟环境

文章目录 回顾conda常用指令创建一个爬虫虚拟主环境Win R 调出终端查看当前conda的虚拟环境创建 spider_base 的虚拟环境安装完成查看环境是否存在 为 pycharm 配置创建的爬虫主虚拟环境选一个盘符来存储之后学习所写的爬虫文件用 pycharm 打开创建的文件夹pycharm 配置解释器…

mvn test 失败,单独运行单元测试成功

标题mvn test 失败,单独运行单元测试成功 使用junit4进行单元测试时是通过的,但是在执行maven的test与package时测试不通过 报错信息: parse data from Nacos error,dataId:guoyu-new-asset-dev.yml,data: ....... 配置文件内容 ....... o…

android 富文本及展示更多组件

模拟微博 #热贴 和 用户 的这种 富文本形式组件,不说了, 直接上代码 package com.tongtong.feat_watch.viewimport android.content.Context import android.graphics.Color import android.util.AttributeSet import android.view.LayoutInflater impo…

gitlab 生成并设置 ssh key

一、介绍 🎯 本文主要介绍 SSH Key 的生成方法,以及如何在GitLab上添加SSH Key。GitLab 使用SSH协议与Git 进行安全通信。当您使用 SSH密钥 对 GitLab远程服务器进行身份验证时,您不需要每次都提供您的用户名和密码。SSH使用两个密钥&#x…

保姆级教程Docker部署Nacos镜像

目录 1、创建挂载目录 2、拉取 Nacos 镜像 3、临时启动并复制文件 4、创建Nacos表结构 5、修改Nacos配置 6、正式启动 Nacos 7、登录Nacos 1、创建挂载目录 在宿主机上创建一个目录用于配置文件映射,这个目录将作为数据卷挂载到容器内部,使得我…

【北京迅为】iTOP-4412全能版使用手册-第六十七章 USB鼠标驱动详解

iTOP-4412全能版采用四核Cortex-A9,主频为1.4GHz-1.6GHz,配备S5M8767 电源管理,集成USB HUB,选用高品质板对板连接器稳定可靠,大厂生产,做工精良。接口一应俱全,开发更简单,搭载全网通4G、支持WIFI、蓝牙、…

【银河麒麟操作系统真实案例分享】内存黑洞导致服务器卡死分析全过程

了解更多银河麒麟操作系统全新产品,请点击访问 麒麟软件产品专区:https://product.kylinos.cn 开发者专区:https://developer.kylinos.cn 文档中心:https://documentkylinos.cn 现象描述 机房显示器连接服务器后黑屏&#xff…

Java项目实战II基于微信小程序的旅游社交平台(开发文档+数据库+源码)

目录 一、前言 二、技术介绍 三、系统实现 四、核心代码 五、源码获取 全栈码农以及毕业设计实战开发,CSDN平台Java领域新星创作者,专注于大学生项目实战开发、讲解和毕业答疑辅导。 一、前言 随着移动互联网的迅猛发展,旅游已经成为人…

【数据库】关系代数和SQL语句

一 对于教学数据库的三个基本表 学生S(S#,SNAME,AGE,SEX) 学习SC(S#,C#,GRADE) 课程(C#,CNAME,TEACHER) (1)试用关系代数表达式和SQL语句表示:检索WANG同学不学的课程号 select C# from C where C# not in(select C# from SCwhere S# in…

IS-IS二

目录 ISIS建立邻接关系的基本条件: 1、接口链路类型一致 2、广播型链路上,接口类型一致 3、Hello包级别和类型一致 4、L1区域的ID要一致,L2的邻居区域ID不做要求 5、L1-2在区域ID相同下,即建立L1也建立L2区域ID不同只能建立…

️ 在 Windows WSL 上部署 Ollama 和大语言模型的完整指南20241206

🛠️ 在 Windows WSL 上部署 Ollama 和大语言模型的完整指南 📝 引言 随着大语言模型(LLM)和人工智能的飞速发展,越来越多的开发者尝试在本地环境中部署大模型进行实验。然而,由于资源需求高、网络限制多…

设计模式の单例工厂原型模式

文章目录 前言一、单例模式1.1、饿汉式静态常量单例1.2、饿汉式静态代码块单例1.3、懒汉式单例(线程不安全)1.4、懒汉式单例(线程安全,同步代码块)1.5、懒汉式单例(线程不安全,同步代码块&#…

net.sf.jsqlparser.statement.select.SelectItem

今天一启动项目,出现了这个错误,仔细想了想,应该是昨天合并代码,导致的mybatis-plus版本冲突,以及分页PageHelper版本不兼容 可以看见这个我是最下边的Caused by 报错信息,这个地方提示我 net .sf.jsqlpar…

第427场周赛: 转换数组、用点构造面积最大的矩形 Ⅰ、长度可被 K 整除的子数组的最大元素和、用点构造面积最大的矩形 Ⅱ

Q1、转换数组 1、题目描述 给你一个整数数组 nums&#xff0c;它表示一个循环数组。请你遵循以下规则创建一个大小 相同 的新数组 result &#xff1a; 对于每个下标 i&#xff08;其中 0 < i < nums.length&#xff09;&#xff0c;独立执行以下操作&#xff1a; 如…

CV工程师专用键盘开源项目硬件分析

1、前言 作为一个电子发烧友&#xff0c;你是否有遇到过这样的问题呢。当我们去查看函数定义的时候&#xff0c;需要敲击鼠标右键之后选择go to definition。更高级一些&#xff0c;我们使用键盘的快捷键来查看定义&#xff0c;这时候可以想象一下&#xff0c;你左手按下ALT&a…

SpringBoot3配置文件

一、统一配置管理概述: SpringBoot工程下&#xff0c;进行统一的配置管理&#xff0c;你想设置的任何参数(端口号、项目根路径、数据库连接信息等等)都集中到一个固定位置和命名的配置文件(application.properties或application.yml)中 配置文件应该放置在Spring Boot工程的s…

【机器学习】任务十一:Keras 模块的使用

1.Keras简介 1.1 什么是Keras&#xff1f; Keras 是一个开源的深度学习框架&#xff0c;用 Python 编写&#xff0c;构建于 TensorFlow 之上。它以简单、快速和易于使用为主要设计目标&#xff0c;适合初学者和研究者。 Keras 提供了高层次的 API&#xff0c;帮助用户快速构…