個人博客原文鏈接:www.imycloud.com
一、先扯犢子:
工作中需要時常搭建cloudstack的測試環境,由於內部網絡限制,使用官方yum安裝變得很困難。另外網速這個是硬傷。所以將cloudstack 官方的安裝源“http://cloudstack.apt-get.eu” 同步到本地,搭建內網安裝源。
所幸官方提供了鏡像服務器rsync服務。
官方文檔(但是存在錯誤):
*** RSYNC *** This mirror also supports rsync, so you can sync the packages from this mirror if you like to For Debian/Ubuntu: $ rync -avr --delete cloudstack.apt-get.eu:cloudstack/ubuntu . For RedHat/CentOS: $ rync -avr --delete cloudstack.apt-get.eu:cloudstack/rhel .
仔細看看我以爲我看錯了。。
其一,我不知道rync是個什麼情況,可能是打字錯誤。
其二,坑爹的是同步命令中,只包含一個“:”。
熟悉rsync的都應該知道,它有六種命令模式:
1: rsync [OPTION]… SRC DEST 拷貝本地文件。當SRC和DES路徑信息都不包含有單個冒號”:”分隔符時就啓動這種工作模式。如:rsync -a /data /backup 2: rsync [OPTION]… SRC [USER@]HOST:DEST 使用一個遠程shell程序(如rsh、ssh)來實現將本地機器的內容拷貝到遠程機器。當DST路徑地址包含單個冒號”:”分隔符時啓動該模式。如:rsync -avz *.c foo:src 3: rsync [OPTION]… [USER@]HOST:SRC DEST 使用一個遠程shell程序(如rsh、ssh)來實現將遠程機器的內容拷貝到本地機器。當SRC地址路徑包含單個冒號”:”分隔符時啓動該模式。如:rsync -avz foo:src/bar /data 4: rsync [OPTION]… [USER@]HOST::SRC DEST 從遠程rsync服務器中拷貝文件到本地機。當SRC路徑信息包含”::”分隔符時啓動該模式。如:rsync -av [email protected]::www /databack 5: rsync [OPTION]… SRC [USER@]HOST::DEST 從本地機器拷貝文件到遠程rsync服務器中。當DST路徑信息包含”::”分隔符時啓動該模式。如:rsync -av /databack [email protected]::www 6: rsync [OPTION]… rsync://[USER@]HOST[:PORT]/SRC [DEST] 列遠程機的文件列表。這類似於rsync傳輸,不過只要在命令中省略掉本地機信息即可。如:rsync -v rsync://172.16.78.192/www
所以,如果按照官方給出的命令去做的話你會發現會提示讓你輸入遠端服務器的用戶密碼:
[darren@www root]$ rsync -avr –delete cloudstack.apt-get.eu:cloudstack/ubuntu . [email protected]’s password: [darren@www root]$ rsync -avr –delete cloudstack.apt-get.eu:cloudstack/rhel . [email protected]’s password:
而且登錄帳號是你當前機器的登錄帳號喲,所以這不是扯淡麼。。。
二、開始幹活(同步官方源):
$ mkdir /opt/cloudstack $ cd /opt/cloudstack For Debian/Ubuntu: $ rsync -avr --delete cloudstack.apt-get.eu::cloudstack/ubuntu . For RedHat/CentOS $ rsync -avr --delete cloudstack.apt-get.eu::cloudstack/rhel . 備註:rsync 參數解釋:-a 參數,相當於-rlptgoD,-r 是遞歸 -l 是鏈接文件,意思是拷貝鏈接文件;-p 表示保持文件原有權限;-t 保持文件原有時間;-g 保持文件原有用戶組;-o 保持文件原有屬主;-D 相當於塊設備文件;-v 傳輸時的進度等信息;
三、搭建本地源服務:
將同步下來的cloudstack目錄放入網頁(apache,nginx)根目錄下面。#RHEL/CentOS: $ cat /etc/yum.repos.d/cloudstack.repo [cloudstack] name=cloudstack baseurl=http://你的源服務器/cloudstack/rhel/$releasever/ enabled=1 gpgcheck=0 $yum install createrepo $createrepo /opt/cloudstack/rhel/$releaserver/ $RHEL/CentOS $ yum clean all $ yum update $ yum makecache #Debian/Ubuntu: $ echo "deb http://你的源服務器/cloudstack/ubuntu $(lsb_release -s -c) 4.2" > /etc/apt/sources.list.d/cloudstack.list $ apt-get update 備註:當然你也可以選擇ftp或者本地目錄的方式。
四、扯完了
其實好像沒什麼技術含量。。。基本上搭建cloudstack環境官方源+RHEL/CentOS 的iso鏡像做本地源就可以搞定了。除了需要額外安裝一個“jakarta-commons-daemon-jsvc” 軟件。
選擇把cloudstack的源同步到本地也爲了增加工作效率。