Skip to content

Instantly share code, notes, and snippets.

@tienthanh2509
Last active March 28, 2017 13:15
Show Gist options
  • Save tienthanh2509/3af45586a9b21651c510b21c559cbf76 to your computer and use it in GitHub Desktop.
Save tienthanh2509/3af45586a9b21651c510b21c559cbf76 to your computer and use it in GitHub Desktop.
Nimbus install script
#!/bin/bash
# Author: Phạm Tiến Thành
# Copyright (c) 2017 PT Studio, All rights reserved.
# Zero to Cloud Guide
# http://www.nimbusproject.org/docs/current/admin/z2c/service-dependencies.html
sudo sed -i 's/http:\/\/archive.ubuntu.com/http:\/\/opensource.xtdv.net/g' /etc/apt/sources.list
sudo sed -i 's/http:\/\/vn.archive.ubuntu.com/http:\/\/opensource.xtdv.net/g' /etc/apt/sources.list
sudo apt update
sudo apt install -y git nano curl wget unzip zip aria2
sudo apt install -y openjdk-8-jdk g++ gcc sqlite3
sudo apt install -y ant ant-optional \
python2.7 python-dev python-openssl libssl-dev python-pip
pip install twisted
sudo pip install cumulus
sudo pip install --upgrade virtualenv
sudo ln -s /usr/lib/python2.7/plat-*/_sysconfigdata_nd.py /usr/lib/python2.7/ # Work around import error
# Service Installation
# http://www.nimbusproject.org/docs/current/admin/z2c/service-setup.html
# Create nimbus user
sudo adduser nimbus --disabled-password
# Nimbus IaaS
sudo chown $USER:$USER /opt
cd /opt
aria2c -x8 http://www.nimbusproject.org/downloads/nimbus-iaas-2.10.1-src.tar.gz
tar -zxvf nimbus-iaas-*-src.tar.gz
#rm -f nimbus-iaas-*-src.tar.gz
# Manual edit
# Mở file
# sudo nano /usr/include/openssl/x509.h
# Nhấn Ctrl+w để tìm
# Sửa X509_REVOKED_dup thành X509_REVOKED_dupe
export NIMBUS_HOME=/opt/nimbus
cd nimbus-iaas-*-src
./install $NIMBUS_HOME
# Admin command
# Creating Cumulus repository with the following commands:
#/opt/nimbus/ve/bin/cumulus-create-repo-admin Repo
/opt/nimbus/bin/nimbusctl start
# thanh@PTT-UVM:/opt/nimbus-iaas-2.10.1-src$ /opt/nimbus/bin/nimbusctl start
# Launching Nimbus services... OK
# Launching Cumulus services... OK
# thanh@PTT-UVM:/opt/nimbus-iaas-2.10.1-src$ sudo netstat -lnp
# Active Internet connections (only servers)
# Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
# tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1030/sshd
# tcp 0 0 0.0.0.0:8888 0.0.0.0:* LISTEN 21683/python
# tcp6 0 0 :::22 :::* LISTEN 1030/sshd
# tcp6 0 0 :::8443 :::* LISTEN 21652/java
# tcp6 0 0 :::8444 :::* LISTEN 21652/java
# tcp6 0 0 :::8446 :::* LISTEN 21652/java
# udp 0 0 0.0.0.0:68 0.0.0.0:* 919/dhclient
# udp 0 0 0.0.0.0:68 0.0.0.0:* 898/dhclient
cd /opt/nimbus
# Create first user
# http://www.nimbusproject.org/docs/current/admin/z2c/service-setup.html#nimbususer
./bin/nimbus-new-user -d /opt/tmp/workspace-thanh phamthanh@d13ht01.tk
# thanh@PTT-UVM:/opt/nimbus$ ./bin/nimbus-new-user -d /opt/tmp/workspace-thanh phamthanh@d13ht01.tk
# cert : /opt/tmp/workspace-thanh/usercert.pem
# key : /opt/tmp/workspace-thanh/userkey.pem
# dn : /O=Auto/OU=PT Studio/CN=phamthanh@d13ht01.tk
# canonical id : e73309f8-1391-11e7-8f80-080027580107
# access id : rkVEgBPok07hu9nu17qsH
# access secret : BF05xElAdgmSmVRTESnbv21JnKFX7pVUOVnkYemv2a
# url : None
# web id : None
# cloud properties : /opt/tmp/workspace-thanh/cloud.properties
# Install cloud client and credentials
# http://www.nimbusproject.org/docs/current/admin/z2c/service-setup.html#clcl
cd /opt
aria2c -x8 http://www.nimbusproject.org/downloads/nimbus-cloud-client-022.tar.gz
tar -zxvf nimbus-cloud-client-022.tar.gz
#rm -f nimbus-cloud-client-022.tar.gz
cp /opt/tmp/workspace-thanh/cloud.properties nimbus-cloud-client-022/conf/
mkdir -p ~/.nimbus/
cp /opt/tmp/workspace-thanh/*.pem ~/.nimbus/
cp $NIMBUS_HOME/var/ca/trusted-certs/* nimbus-cloud-client-022/lib/certs/
# Try it out!
cd /opt/nimbus-cloud-client-022/
./bin/cloud-client.sh --status
#################################################
# Install DHCPd and Configure Networking
sudo apt install qemu-kvm libvirt-bin virtinst
# Test
sudo virsh -c 'qemu:///system' list
# Thêm vào cuối file /etc/libvirt/qemu.conf (Không có "# ")
user = "root"
group = "root"
dynamic_ownership = 0
clear_emulator_capabilities = 0
# Thêm vào cuối file /etc/libvirt/libvirtd.conf (Không có "# ")
unix_sock_group = "libvirtd"
unix_sock_ro_perms = "0770"
unix_sock_rw_perms = "0770"
unix_sock_dir = "/var/run/libvirt"
sudo usermod -a -G libvirtd $USER
sudo usermod -a -G libvirtd nimbus
# Khởi động lại
sudo reboot
# Install workspace-control
export NIMBUS_HOME=/opt/nimbus
cd /opt
aria2c -x8 http://www.nimbusproject.org/downloads/nimbus-iaas-controls-2.10.1.tar.gz
tar -zxvf nimbus-iaas-controls-2.10.1.tar.gz
# rm -f nimbus-iaas-controls-2.10.1.tar.gz
cp -R nimbus-iaas-controls-2.10.1/workspace-control/* $NIMBUS_HOME
cd $NIMBUS_HOME
sudo chown -R root bin etc lib libexec src
sudo chown -R nimbus var
sudo find . -type d -exec chmod 775 {} \;
sudo find . -type f -exec chmod 664 {} \;
sudo find bin sbin libexec -iname "*sh" -exec chmod 755 {} \;
sudo -u nimbus /opt/nimbus-control/sbin/test-dependencies.sh
export KERNELDIR=/opt/nimbus-control/var/workspace-control/kernels
sudo cp /boot/vmlinuz-4.4.0-70-generic $KERNELDIR/default
sudo cp /boot/initrd.img-4.4.0-70-generic $KERNELDIR/default-initrd
# Sửa Xen thành "kvm0" trong file /opt/nimbus/etc/workspace-control/libvirt.conf
#[libvirt]
#vmm: kvm0
sudo nano /opt/nimbus-control/etc/workspace-control/libvirt.conf
export NIMBUS_HOME=/opt/nimbus
aria2c -x8 http://www.nimbusproject.org/downloads/ubuntu10.10.gz
gunzip ubuntu10.10.gz
rm -f $NIMBUS_HOME/var/workspace-control/persistence/control-test-nicset
cp $NIMBUS_HOME/services/var/nimbus/control.netsample.txt /opt/tmp/control.netsample.txt
cd /opt/nimbus-control
./sbin/libvirt-xml.sh --image /opt/ubuntu10.10 --netsample \
/opt/tmp/control.netsample.txt --memory 256 --mountpoint hda
./sbin/libvirt-xml.sh --image /opt/ubuntu10.10 --netsample \
/opt/tmp/control.netsample.txt --memory 256 --mountpoint hda > /opt/tmp/z2c.xml
virsh -c 'qemu:///system' create /opt/tmp/z2c.xml
./sbin/destroy-control-test.sh
# SSH Setup
# http://www.nimbusproject.org/docs/current/admin/z2c/ssh-setup.html
ssh-keygen
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment