批量部署lxc虛擬機

前言:lxc是一種操作系統層虛擬化(Operating system–level virtualization)技術,為Linux內核容器功能的一個用戶空間接口。它將應用軟件系統打包成一個軟件容器(Container),內含應用軟件本身的代碼,以及所需要的操作系統核心和庫。通過統一的命名空間和共用API來分配不同軟件容器的可用硬件資源,創造出應用程序的獨立沙箱運行環境,使得Linux用戶可以容易的創建和管理系統或應用容器。

由于有些朋友對lxc虛擬機了解不多,所以我覺得,這個課題也算很新穎了。

馬哥簡單講了lxc虛擬機的部署。我把他寫成了腳本,全當練習啦?。▌e小瞧它,lxc虛擬機也有用武之地的?。?/p>

用后體會:用了幾天,占用內存很小,安裝速度較快,如果你的電腦硬件配置較低,完全可是試試它!

小伙伴們,有幾點需要注意,lxc的虛擬機是非常簡化版的虛擬機,共用的內核,也不支持fdisk,selinux跟宿主機是一樣的也不支持修改等等(其他方面不足待考證)。

所以,我要說明,條件高的同學們不要使用啦。如果你做集群,或者需要使用大量虛擬機,對虛擬機要求的并不高,可以在一臺虛擬機里安裝多臺的lxc虛擬機(vmware虛擬機的內存給大一些)。

實驗環境:

1.將馬哥發的lxc軟件放到/root/lxc

2.配制好本地yum源

3.一個網卡就行

為了方便大家,我寫了一些注釋,腳本測試過幾次,應該沒有沒問題。當然,由于每個人的環境不同,如果遇到問題大家可以聯系我,自己改改也行,我不勝感激。

#!/bin/bash

########Note: please put the Lxc software file in /root/lxc################# 

########Note: Please configure the local yum################################ 

setenforce 0 &>/dev/null

service iptables  stop

read -p "please enter your ip,Netmask and Network card Name(ex:1.1.1.1 255.0.0.0 eth0) :" UserIp Mask Device 

#####請輸入你的網卡的ip(隨便給一個,不能重復)掩碼和網卡名

if ! ping -w 1 -c1 $UserIp &>/dev/null;then

echo 'ok'

else

        echo "$UserIp has already been used."

        exit 1

fi

cd /etc/sysconfig/network-scripts/

cat > ifcfg-eth0 << EOF

DEVICE="$Device"

ONBOOT=yes

BOOTPROTO=none

IPADDR="$UserIp"

NETMASK="$Mask"

EOF

read -p "please enter mirror path,Must be absoulte path(ex:/dev/cdrom):" mirror 你們本地鏡像在哪(要寫絕對路徑)

mount -o loop $mirror /mnt

echo 'mirror mount /mnt!'

cd /etc/sysconfig/network-scripts/

cp ifcfg-eth0 ifcfg-br0

sed -i '$a TYPE=Bridge' ifcfg-br0

sed -i '/DEVICE/c DEVICE=br0' ifcfg-br0

sed -i '/BOOTPROTO/c BOOTPROTO=none' ifcfg-br0

sed -i '/IPADDR/d' ifcfg-eth0

sed -i '/NETMASK/d' ifcfg-eth0

sed -i '/BOOTPROTO/c BOOTPROTO=none' ifcfg-eth0

sed -i '$a BRIDGE=br0' ifcfg-eth0


service NetworkManager stop

service network restart 

yum install vsftpd -y

cp -a /mnt/* /var/ftp/pub

service vsftpd restart && echo 'vsftpd is ok!'

ip=`ifconfig br0 | awk -F ' +|:' '/inet addr/{print $4}'` #####ftp server ip #################

cd /root/lxc

yum install *.rpm -y

yum install libcgroup -y 

service cgconfig restart 

chkconfig cgconfig on

path='/usr/share/lxc/templates/lxc-centos'

sed -i '/lxc.network.link/c lxc.network.link = br0' /etc/lxc/default.conf

sed  -i '/\[updates\]/,/updates$/d' $path

sed -i "/=os$/c baseurl=ftp://$ip/pub" $path

declare -a abc

declare -i A=0

read  -p  "please enter Machine Name,can have more Name(ex:centos1 centos2 ):" -a abc  

#####輸入虛擬機的名字空格隔開(輸入幾個名字就有幾個虛擬機出來,這些名字你要記?。?/p>

Num=`echo "${abc[*]}" | wc -w `

for i in `seq 0 "$[$Num-1]"`;do

lxc-create -n ${abc["$i"]} -t $path

done

echo '#######run  "chroot /var/lib/lxc/MACHINE NAME/rootfs passwd"###################' 

你必須要設置密碼才能登陸,將里面的‘MACHINE NAME’改成你的虛擬機名就可以設定了

echo '#######please modify the password of the virtual machine, and then run lxc-start -n MACHINE NAME####' 

lxc-start -n 虛擬機名字 (這個是登陸用的)

關于lxc虛擬機的幾個小命令,幫助你玩轉它!

lxc-start -n 虛擬機名 作用:開啟虛擬機

lxc-stop -n 虛擬機名  作用:停止虛擬機

lxc-ls   作用:查看虛擬機

lxc-destroy -n 虛擬機名 作用:刪除指定的虛擬機


本人新手一枚,也是第一次分享博客,腳本也比較亂,希望大家批評指正,不喜勿噴。真心的希望和大家共同進步,也希望馬哥的兄弟們能見證我的成長!


原創文章,作者:Net-Jia,如若轉載,請注明出處:http://www.www58058.com/12965

(0)
Net-JiaNet-Jia
上一篇 2016-03-19
下一篇 2016-03-20

相關推薦

  • 馬哥教育網絡22班第二周課程練習

    1,Linux上的文件管理類命令有哪些?其常用的使用方法機器相關實例演示 文件管理類命令:   cp 文件復制         常用選項:             -i:交互式           &…

    Linux干貨 2016-08-30
  • N22-北京-追求極境之人-RSYNC差分編碼同步原理

    1客戶端發送自己的filelist,filelist包含文件hashindexid(alert32)和關聯的文件chunkChecksum(MD5)和hashindexID以便進行快速查找,chunksize根據文件大小進行等分,不足均值部分直接發送不進行MD5校驗值生成 發送進程一次從生成器讀取一個文件索引號和關聯的塊校驗集合 2對于生成器發送的每個文件I…

    Linux干貨 2016-08-22
  • Linux磁盤與文件系統管理

    對于一塊磁盤,如果我們想要使用的話,需要對磁盤進行分區并建立文件系統。下面,我們就了解一下Linux中的磁盤與文件系統管理 一、MBR 硬盤的0扇區為MBR扇區,其由以下幾部分組成: l  主引導程序(偏移地址0000H–0088H),它負責從活動分區中裝載,并運行系統引導程序。 l  出錯信息數據區,偏移地址0089H&#8…

    Linux干貨 2016-08-28
  • 破壞grub實驗之二

    刪除/etc/fstab和/boot和grub的stage1階段 [root@localhost ~]# rm -rf /boot [root@localhost ~]# rm -rf /etc/fstab  [root@localhost ~]# …

    Linux干貨 2016-09-28
  • http://www.jianshu.com/p/aac6076e4ca2

    Linux干貨 2017-07-29
  • 簡單描述LVS工作原理-第1部分

    一、NAT模式(VS-NAT) 原理:就是把客戶端發來的數據包的IP頭的目的地址,在負載均衡器上換成其中一臺RS的IP地址,并發至此RS來處理,RS處理完成后把數據交給經過負載均衡器,負載均衡器再把數據包的原IP地址改為自己的IP,將目的地址改為客戶端IP地址即可?期間,無論是進來的流量,還是出去的流量,都必須經過負載均衡器? 優點:集群中的物理服務器可以使…

    Linux干貨 2016-08-15

評論列表(1條)

  • stanley
    stanley 2016-03-20 11:48

    blog的代碼段格式化后會更精彩

欧美性久久久久