Cloudstack 的搭建

tao先生發表於2015-03-27

Note: 關閉了NFS Storage 的防火牆 service iptables stop

 

1. 新建立的Linux沒有獲取IP;

   vi /etc/sysconfig/network-script/ifcfg-eth0

   修改 ONBOOT="yes"

   增加 BOOTPROTO="dhcp"

 

2. 通過命令 "hostname --fqdn"檢視FQDN, 如果不能返回值,

   vi /etc/hosts

   增加 ip fqdn hostname

 

3. 檢視selinux狀態 

    /usr/sbin/sestatus -v  或 sestatus

   得確定selinux狀態為disable 或 permissive

Set the SELINUX variable in /etc/selinux/config to "permissive". This ensures that the

permissive setting will be maintained after a system reboot.

Then set SELinux to permissive starting immediately, without requiring a system reboot.

增加 setenforce 0

 

4. 配置本地yum源

   載入光碟系統檔案到本地 mount /dev/cdrom /media

   Create a repo file at /etc/yum.repos.d/rhel6.repo. In the file, insert the following lines:

[rhel]

name=rhel6

baseurl=file:///media

enabled=1

gpgcheck=0

 

5. 安裝ntp服務

  yum install ntp

Edit the NTP configuration file to point to your NTP server.

# vi /etc/ntp.conf

Add one or more server lines in this file with the names of the NTP servers you want to use.

For example:

server 0.xenserver.pool.ntp.org

server 1.xenserver.pool.ntp.org

server 2.xenserver.pool.ntp.org

server 3.xenserver.pool.ntp.org

Restart the NTP client.

# service ntpd restart

Make sure NTP will start again upon reboot.

# chkconfig ntpd on

 

6. 安裝ManagementServer

1. Download the CloudStack Management Server onto the host where it will run. Get the software

from the following link.

https://www.citrix.com/English/ss/downloads/.

2. Install the CloudStack packages. You should have a file in the form of "CloudStack-VERSION-NOSVERSION.

tar.gz". Untar the file and then run the install.sh script inside it. Replace the file and

directory names below with those you are using:

# tar xzf CloudStack-VERSION-N-OSVERSION.tar.gz

# cd CloudStack-VERSION-N-OSVERSION

# ./install.sh

You should see a few messages as the installer prepares, followed by a list of choices.

3. Choose M to install the Management Server software.

> M

4. When the installation is finished, run the following commands to start essential services:

# service rpcbind start

# service nfs start

# chkconfig nfs on

# chkconfig rpcbind on

 

7. Install and Configure the Database

1. If you already have a version of MySQL installed on the Management Server node, make one of

the following choices, depending on what version of MySQL it is. The most recent version tested is

5.1.58.

• If you already have installed MySQL version 5.1.58 or later, skip to step 4.

• If you have installed a version of MySQL earlier than 5.1.58, you can either skip to step 4 or

uninstall MySQL and proceed to step 2 to install a more recent version.

Warning

It is important that you choose the right database version. Never downgrade a MySQL

installation.

2. On the same computer where you installed the Management Server, re-run install.sh.

# ./install.sh

You should see a few messages as the installer prepares, followed by a list of choices.

3. Choose D to install the MySQL server from the distribution's repo.

> D

Troubleshooting: If you do not see the D option, you already have MySQL installed. Please go

back to step 1.

4. Edit the MySQL configuration (/etc/my.cnf or /etc/mysql/my.cnf, depending on your OS) and

insert the following lines in the [mysqld] section. You can put these lines below the datadir line.

The max_connections parameter should be set to 350 multiplied by the number of Management

Servers you are deploying. This example assumes one Management Server.

innodb_rollback_on_timeout=1

innodb_lock_wait_timeout=600

max_connections=350

log-bin=mysql-bin

binlog-format = 'ROW'

5. Restart the MySQL service, then invoke MySQL as the root user.

# service mysqld restart

# mysql -u root

6. Best Practice: MySQL does not set a root password by default. It is very strongly recommended

that you set a root password as a security precaution. Run the following commands, and

substitute your own desired root password.

mysql> SET PASSWORD = PASSWORD('password');

From now on, start MySQL with mysql -p so it will prompt you for the password.

7. To grant access privileges to remote users, perform the following steps.

a. Run the following commands from the mysql prompt:

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;

mysql> exit

b. Restart the MySQL service.

# service mysqld restart

c. Open the MySQL server port (3306) in the firewall to allow remote clients to connect.

# iptables -I INPUT -p tcp --dport 3306 -j ACCEPT

d. Edit the /etc/sysconfig/iptables file and add the following line at the beginning of the INPUT

chain.

-A INPUT -p tcp --dport 3306 -j ACCEPT

8. Set up the database. The following command creates the cloud user on the database.

• In dbpassword, specify the password to be assigned to the cloud user. You can choose to

provide no password.

• In deploy-as, specify the username and password of the user deploying the database. In the

following command, it is assumed the root user is deploying the database and creating the

cloud user.

• (Optional) For encryption_type, use file or web to indicate the technique used to pass in the

database encryption password. Default: file. See About Password and Key Encryption.

• (Optional) For management_server_key, substitute the default key that is used to encrypt

confidential parameters in the CloudPlatform properties file. Default: password. It is highly

recommended that you replace this with a more secure value. See About Password and Key

Encryption.

• (Optional) For database_key, substitute the default key that is used to encrypt confidential

parameters in the CloudPlatform database. Default: password. It is highly recommended that

you replace this with a more secure value. See About Password and Key Encryption.

# cloudstack-setup-databases cloud:<dbpassword>@localhost --deploy-as=root:<password> -e

<encryption_type> -m <management_server_key> -k <database_key>

9. Now that the database is set up, you can finish configuring the OS for the Management Server.

This command will set up iptables, sudoers, and start the Management Server.

# cloudstack-setup-management

 

7. Deploy a Separate NFS Server (最簡單的方法,不要設定防火牆的相關資訊,直接關閉防火牆 service iptables stop)

1. On the storage server, create an NFS share for secondary storage and, if you are using NFS for

primary storage as well, create a second NFS share. For example:

# mkdir -p /export/primary

# mkdir -p /export/secondary

2. To configure the new directories as NFS exports, edit /etc/exports. Export the NFS share(s) with

rw,async,no_root_squash. For example:

# vi /etc/exports

Insert the following line.

/export *(rw,async,no_root_squash)

3. Export the /export directory.

# exportfs -a

4. On the management server, create a mount point for secondary storage. For example:

# mkdir -p /mnt/secondary

5. Mount the secondary storage on your Management Server. Replace the example NFS server

name and NFS share paths below with your own.

# mount -t nfs nfsservername:/nfs/share/secondary /mnt/secondary

Edit the /etc/sysconfig/nfs file.

# vi /etc/sysconfig/nfs

Uncomment the following lines:

LOCKD_TCPPORT=32803

LOCKD_UDPPORT=32769

MOUNTD_PORT=892

RQUOTAD_PORT=875

STATD_PORT=662

STATD_OUTGOING_PORT=2020

Edit the /etc/sysconfig/iptables file.

# vi /etc/sysconfig/iptables

Add the following lines at the beginning of the INPUT chain:

-A INPUT -m state --state NEW -p udp --dport 111 -j ACCEPT

-A INPUT -m state --state NEW -p tcp --dport 111 -j ACCEPT

-A INPUT -m state --state NEW -p tcp --dport 2049 -j ACCEPT

-A INPUT -m state --state NEW -p tcp --dport 32803 -j ACCEPT

-A INPUT -m state --state NEW -p udp --dport 32769 -j ACCEPT

-A INPUT -m state --state NEW -p tcp --dport 892 -j ACCEPT

-A INPUT -m state --state NEW -p udp --dport 892 -j ACCEPT

-A INPUT -m state --state NEW -p tcp --dport 875 -j ACCEPT

-A INPUT -m state --state NEW -p udp --dport 875 -j ACCEPT

-A INPUT -m state --state NEW -p tcp --dport 662 -j ACCEPT

-A INPUT -m state --state NEW -p udp --dport 662 -j ACCEPT

Run the following commands:

# service iptables restart

# service iptables save

 

9. Prepare the System VM Template

1. On the Management Server, run one or more of the following cloud-install-sys-tmplt commands

to retrieve and decompress the system VM template. Run the command for each hypervisor type

that you expect end users to run in this Zone.

If your secondary storage mount point is not named /mnt/secondary, substitute your own mount

point name.

If you set the CloudPlatform database encryption type to "web" when you set up the database, you

must now add the parameter -s <management-server-secret-key>. See About Password and Key

Encryption.

This process will require approximately 5 GB of free space on the local file system and up to 30

minutes each time it runs.

• For XenServer:

# /usr/share/cloudstack-common/scripts/storage/secondary/cloud-install-sys-tmplt -m /

mnt/secondary -u http://download.cloud.com/templates/4.2/systemvmtemplate-2013-07-12-

master-xen.vhd.bz2 -h xenserver -s <optional-management-server-secret-key> -F

• For vSphere:

# /usr/share/cloudstack-common/scripts/storage/secondary/cloud-install-sys-tmplt -m /

mnt/secondary -u http://download.cloud.com/templates/4.2/systemvmtemplate-4.2-vh7.ova -

h vmware -s <optional-management-server-secret-key> -F

• For KVM:

/usr/share/cloudstack-common/scripts/storage/secondary/cloud-install-sys-tmplt -m /

mnt/secondary -u http://download.cloud.com/templates/4.2/systemvmtemplate-2013-06-12-

master-kvm.qcow2.bz2 -h kvm -s <optional-management-server-secret-key> -F

2. If you are using a separate NFS server, perform this step. If you are using the Management

Server as the NFS server, you MUST NOT perform this step.

Chapter 5. Installation

62

When the script has finished, unmount secondary storage and remove the created directory.

# umount /mnt/secondary

# rmdir /mnt/secondary

3. Repeat these steps for each secondary storage server.

 

 

 

相關文章