问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

Oracle VM VirtualBox 建2个一样的虚拟机

发布网友 发布时间:2022-04-10 11:40

我来回答

4个回答

懂视网 时间:2022-04-10 16:02

一. 在Linux机器上配置Command Line Interface。

1. Python版本号大于等于2.7

[root@repo ~]$ python --version

技术分享图片

2. 安装的用户要有sudo权限

[root@repo ~]# visudo

技术分享图片

符合条件

2. 下载并安装CLI

[lirou@node3 ~]$ curl -L "https://raw.githubusercontent.com/oracle/oci-cli/master/scripts/install/install.sh" | bash

技术分享图片

技术分享图片

技术分享图片

查看

技术分享图片

3. 自动生成配置CLI配制文件

此配置文件用于认证

技术分享图片

获取用户OCID:

技术分享图片

获取租户OCID

技术分享图片

4. 更新用户密钥

技术分享图片

查看密钥放置的位置:

技术分享图片

查看密钥内容
技术分享图片

添加密钥

技术分享图片

技术分享图片

技术分享图片

4. 测试是否配置成功

技术分享图片

二. 批量部署节点机脚本

#!/bin/bash
# Description: batch create Oracle Cloud Virtual Instance.
# Date: 2017/11/22
# Author: lirou<lirou@rayvision.com>
# Version: 1.0.1
#

#### set some variables.
Error_Create=2
Error_No_Instance=3
iError_Parameter=4
#node host global variables
oci_path=/root/y/oci
compartment_id=ocid1.tenancy.oc1
tenancy_id=ocid1.tenancy.oc1
subnet_id=ocid1.subnet.oc1.phx
image_id=ocid1.image.oc1.phx
shape="VM.Standard1.1"
#record node host create and delete variables.
file_of_alived_node=/var/lib/oracle/alived.nodes
file_of_ip_number=/var/lib/oracle/ip.txt
file_of_create_node_log=/var/log/oracle/create.log
file_of_delete_node_log=/var/log/oracle/delete.log

### make sure file is existence.
[ ! -d $(dirname $file_of_alived_node) ] && mkdir $(dirname $file_of_alived_node) >>/dev/null
[ ! -d $(dirname $file_of_ip_number) ] && mkdir $(dirname $file_of_ip_number) >>/dev/null
touch $file_of_ip_number
[ ! -d $(dirname $file_of_create_node_log) ] && mkdir $(dirname $file_of_create_node_log) >>/dev/null
[ ! -d $(dirname $file_of_delete_node_log) ] && mkdir $(dirname $file_of_delete_node_log) >>/dev/null

#### create node host
### Usage: Create_Node instance_display_name instance_private_ip volume_display_name volume_size_in_mbs attachment_display_name
function Create_Node { 
 #Create instance
 instance_id=$($oci_path compute instance launch --availability-domain $avail_domain -c $compartment_id --image-id $image_id --shape $shape --display-name $1 --subnet-id $subnet_id --private-ip $2 | grep ""id"" | cut -d """ -f 4)
 if [[ -z $instance_id ]];then
 echo "[$(date +‘%F %T‘)] [instance] [$1:$2] [create failure] [exit...]" >> $file_of_create_node_log
 exit $ERROR_Create
 else
 echo "[$(date +‘%F %T‘)] [instance] [$1:$instance_id:$2] [create success]" >> $file_of_create_node_log
 fi
 # Create Volume
 volume_id=$($oci_path bv volume create --availability-domain $avail_domain -c $compartment_id --display-name $3 --size-in-mbs $4 | grep ""id"" | cut -d """ -f 4)
 if [[ -z $volume_id ]];then
 echo "[$(date +‘%F %T‘)] [volume] [$3] [create failure] [exit...]" >> $file_of_create_node_log
 exit $ERROR_Create
 else
 echo "[$(date +‘%F %T‘)] [volume] [$3:$volume_id:$4] [create success]" >> $file_of_create_node_log
 fi
 # Attach Volume to Instance
 while true;do
 instance_state=$($oci_path compute instance get --instance-id $instance_id | grep "lifecycle-state" |cut -d """ -f 4)
 volume_state=$($oci_path bv volume get --volume-id $volume_id | grep "lifecycle-state" |cut -d """ -f 4)
 if [[ $instance_state == "RUNNING" ]] && [[ $volume_state == "AVAILABLE" ]];then
  volume_attached_id=$($oci_path compute volume-attachment attach --display-name $5 --instance-id $instance_id --type iscsi --volume-id $volume_id | grep ""id"" | cut -d """ -f 4) 
  if [[ -z $volume_attached_id ]];then
  echo "[$(date +‘%F %T‘)] [volume_attached] [$5] [create failure] [exit...]" >> $file_of_create_node_log
  exit $ERROR_Create
  else
  echo "[$(date +‘%F %T‘)] [volume_attached] [$5:$volume_attached_id] [create success]" >> $file_of_create_node_log
  fi
  break
 fi
 sleep 5
 done
 echo ""$(date +‘%F %T‘)" "$instance_id" "$volume_id" "$volume_attached_id"" >> $file_of_alived_node
}

if [ $# -le 3 ];then
 echo "Error: Usage $(basename $0) {create|delete} number"
 exit $Error_Parameter
fi

case $1 in 
 create)
 start_ip_number=5
 # file_of_ip_number restore have been create maximal ip 
 . $file_of_ip_number
 create_instance_number=0
 # Loop create node host
 while [[ $create_instance_number -lt $2 ]] && [[ $start_ip_number -le 250 ]];do 
  instance_display_name=iGB$(printf "%03d" $start_ip_number)
  instance_private_ip=10.40.1.$start_ip_number
  echo $instance_private_ip
  volume_display_name=vGB$(printf "%03d" $start_ip_number)
  volume_size_mbs=51200
  attachment_display_name=${instance_display_name}_attached_${volume_display_name}
  Create_Node $instance_display_name $instance_private_ip $volume_display_name $volume_size_mbs $attachment_display_name
  # alter create maximal ip
  start_ip_number=$((start_ip_number+1))
  echo "start_ip_number=$start_ip_number" >$file_of_ip_number 
  create_instance_number=$((create_instance_number+1))
 done
 echo "create $create_instance_number instance."
 ;;
 delete)
 . $file_of_ip_number
 #end_delete_ip_number=$((start_create_ip_number-1))
 delete_instance_number=0
 while [ $delete_instance_number -lt $2 ];do
  instance_id=$(tail -1 $file_of_alived_node | cut -d """ -f 4)
  if [[ -z $instance_id ]];then
  echo "no have more instance"
  echo "delete $delete_instance_number instance."
  exit $Error_No_Instance 
  fi
  volume_id=$(tail -1 $file_of_alived_node | cut -d """ -f 6)

  $oci_path compute instance terminate --force --instance-id $instance_id
  while true;do
  instance_state=$($oci_path compute instance get --instance-id $instance_id |grep "lifecycle-state" |cut -d """ -f 4) 
  if [[ $instance_state == "TERMINATED" ]] || [[ -z $instance_state ]];then
   break
  fi
  sleep 5
  done
  $oci_path bv volume delete --force --volume-id $volume_id
  delete_instance_number=$((delete_instance_number+1))
  echo ""$instance_id" "$volume_id"" >> $file_of_delete_node_log
  # alter alived hosts
  sed -i "/$instance_id/d" $file_of_alived_node 
  echo "start_ip_number=$((start_ip_number-1))" >$file_of_ip_number 
 done
 echo "delete $delete_instance_number instance."
 ;;
 *)
 echo "Usage: $(basename $0) {create|delete} number"
esac

注意 :

技术分享图片

  • 脚本使用
  • 创建节点机:./nodes_ocvh.sh create 3
  • 删除节点:./nodes_ocvh.sh delete 2
  • Oracle云远程批量创建虚拟机

    标签:####   base   man   stand   tps   oop   bae   ima   dir   

    热心网友 时间:2022-04-10 13:10

    设置问题
    没有共享文件夹的问题,可能是你没有设置那个文件夹,具体的文件夹的地址,或者位置。也就是没有指定。
    从新安装是不能解决问题的。
    追问就是上面说的,直接用之前的景象文件,克隆一个系统,不用再装系统,达到节省时间的目的,谢谢!

    热心网友 时间:2022-04-10 14:28

    导出虚拟机,再导入就可以了

    热心网友 时间:2022-04-10 16:02

    直接复制虚拟机文件追问详细点的步骤 谢谢

    声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
    ef英语哪个好 EF英孚英语培训怎么样? 英孚英语好不好 EF英孚教育到底好不好 大佬们,麦芒7和荣耀10那个值得入手?2500以下的机子还有啥好推荐的么... 介绍几款2500元以前的手机 像素一定要高 其他的不做要求 近期想入手一部安卓手机,价格2200到2500左右…买HTC desire Z还是 三星... 笔记本忘记开机密码怎么办急死了 笔记本电脑屏幕开机锁忘记密码 怎么办?急死了 华硕笔记本电脑开机密码忘记了怎样找回?系统是Windows 7旗舰版... 山东青年干部管理学院的办学成果 山东青岛青少年心理成长中心 山东青少年心理辅导学校 汕头市和揭阳交界吉祥寺有没有开放? 有谁知道南京大吉祥寺的吗?南京有这个寺庙吗? 谁知道福建吉祥寺养老院都收留什么样的人? 吉祥寺怎么样 宁波吉祥寺在哪? 日本吉祥寺在东京什么区 价值3元 e5 2680v2跑分为什么比i7 7700还高,玩 吉祥寺的吉祥寺圣佛节 内乡县吉祥寺地址怎么走? 福建吉祥寺养老院入住年龄 中国首家“寺庙养老院”,入住需满足什么条件? 钟祥吉祥寺的历史 入住吉祥寺需要满足什么条件呢? E5 2680V2跟i7 5960x哪个好 吉祥寺的寺院变迁 吉祥寺的北京密云吉祥寺 吉祥寺的寺庙概况 请问山东哪个医院的哪个心理医生特别好?可以解决青少年厌学上网问题的! 山东青干部管理学院的位置 山东青年政治学院是民办学校吗? 山东青年干部管理学院都有什么专业啊?我是山东考生,理科,421分能报那个专业啊? 山东省心理咨询哪里好 山东什么地方有叛逆孩子学校? 山东淄博哪里戒网瘾?谁了解 山东引导孩子厌学、早恋、孤僻、暴力倾向的心理辅导机构,找河南郑州搏强! 拉丝橡皮变硬了,怎样才能再变回软的 净水器废水为何在未使用时自动出废水? 汉尔顿净水器刚安装后打开关后自动排废水是怎样问题? 美的净水机MRC1790—400G间歇性自动启动一直排废水是什么原因? 老佟家凉皮当中招牌的属什么口味? 凉皮的凉皮口味 卷凉皮都是有哪些口味 如何批处理 打开多个Oracle VM VirtualBox的虚拟机 华为手机上为什么没有录制视频? 寻可爱猫咪屏保!!! 埋堆堆怎样查看哪些设备登录了 oracle vm virtualbox如何创建win7虚拟机?