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

请问如何使用Oracle VM Virtualbox创建虚拟机?

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

我来回答

3个回答

懂视网 时间: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

    百度一大堆,何须这里问
    声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
    ef英语哪个好 EF英孚英语培训怎么样? 英孚英语好不好 EF英孚教育到底好不好 大佬们,麦芒7和荣耀10那个值得入手?2500以下的机子还有啥好推荐的么... 介绍几款2500元以前的手机 像素一定要高 其他的不做要求 近期想入手一部安卓手机,价格2200到2500左右…买HTC desire Z还是 三星... 笔记本忘记开机密码怎么办急死了 笔记本电脑屏幕开机锁忘记密码 怎么办?急死了 华硕笔记本电脑开机密码忘记了怎样找回?系统是Windows 7旗舰版... 什么加什么等于黑色 什么颜色加什么颜色等于黑色 什么颜色?加什么颜色等于黑色 什么颜色加什么颜色等于黑色。 本人姓覃女孩起什么名字好 求2013年11月8日出生姓覃女孩好听易记女孩名字 取一个姓覃的女孩的名字 要快 5分悬赏 姓覃的女孩子怎样取名字 我是牙克石图里河建行买断的职工工龄44年退休金可以拿多少? oracle vm virtualbox怎么创建虚拟机 关于省*下发的退役军人清零工作会议我是83年入伍94年转业到中国建设银行的2000买断的我们清零 建行买断退休后还享银行待遇吗 我是建行买段女职工,退休年龄是50岁还是55岁 建行09年对于买断员工有没有赔偿的意思? 建设银行:买断职工补偿问题何时解决 谁知道那个欺骗建行职工买断的张恩照下场怎样了? 买断两年时间有人要么? 建行买断职工,合同制工95年之前没交养老保险,退休能解决吗? 我是一名建行买断员工现在被建行物业反聘回来工作请问物业应不应改给我交纳住房基金 30万买个建设银行员工名额值吗 灰色加什么色等于黑色? 微信怎么设置隐藏,不让好友看到? 灰色加什么颜色等于黑色 什么颜色加白色等于黑色? 粉红色加黑色等于什么颜色 微信怎么设置隐藏,不让好友看到? navicat 连接名和密码这些我都不知道哪里来``` java系统修改的密码会在哪里 知道远程mysql用户名和密码,能远程管理吗?我用Navicat连接,提示连接失败! - 信息提示 navicat如何获得sysdba角色 Navicat 8 for MySQL怎么总是连接不了,是不是需要用户名和密码.求各位大大帮助 知道sql数据库的IP、用户名和密码,怎样把远程网站的数据库下载到本地 公司的网站有数据库地址,用户名,密码,数据库是MYSQL的,请问怎么登录,查看 湖南邵阳人骂人口头禅- 问一问 希水县县长是谁 湖南长沙的主要口头禅是哪些? 陈定国的黄冈市副市长 这不得了在湖南话中是什么意思? 程罡的生平简介