云实例启动时,如何在shell程序脚本中使用LXD(Linux容器)创建VM
时间:2020-01-09 10:39:04 来源:igfitidea点击:
如何安装LXD服务并使用Shell脚本创建一个具有特定私有IP的虚拟机?
如何在云服务器启动时创建LXD VM?
我假设您正在使用Ubuntu 16.04 LTS云VM或裸机服务器。
您可以使用apt-get安装lxd,并使用lxc命令创建LXD VM。
bash shell脚本示例
这是安装LXD CentOS 7虚拟机的shell脚本:
#!/bin/bash
# Purpose: Create an LXD CentOS 7 VM on top of Ubuntu 16.04 LTS server
# License: GPL v2.0+
# ---------------------------------------------------------------------
## Set defaults ##
if_net="eth0" # vm interface
br_net="lxdbr0" # host bridge
if_net_sub="10.105.28.1/24" # subnet for br_net
if_net_ip="10.105.28.2" # IP for vm
## VM name ##
vm_name="www-server"
## Vm distro. I am using CentOS ##
## You can use Gentoo, Arch, OpenSuse, Ubuntu, Debian and more ##
vm_distro="centos/7/amd64"
## bin path ##
_apt="/usr/bin/apt-get"
_lxd="/usr/bin/lxd"
_lxc="/usr/bin/lxc"
## Update base host ##
$_apt update
$_apt -y upgrade
## Install LXD on base os ##
$_apt -y install lxd
$_lxd init --auto
## Create new networking bridge ##
$_lxc network create ${br_net} ipv6.address=none ipv4.address=${if_net_sub} ipv4.nat=true
## Create vm ##
$_lxc init images:${vm_distro} ${vm_name}
## Config vm networking ##
$_lxc network attach ${br_net} ${vm_name} ${if_net}
$_lxc config device set ${vm_name} ${if_net} ipv4.address ${if_net_ip}
## Start vm ##
$_lxc start ${vm_name}
## Make sure vm boot after host reboots ##
$_lxc config set ${vm_name} boot.autostart true
## Install updates in CentOS 7 VM ##
$_lxc exec ${vm_name} -- /usr/bin/yum -y update
$_lxc exec ${vm_name} -- /usr/bin/yum -y upgrade
## Install package (optional) ##
$_lxc exec ${vm_name} -- /usr/bin/yum -y install epel-release
$_lxc exec ${vm_name} -- /usr/bin/yum -y install httpd htop

