Opennebula4.2管理端和节点SSH模式的安装配置

一、实验环境:

主机名        IP(Static)                         系统                                            配置                                         角色

nebula     192.168.100.218   CentOS-6.4-x86_64-minimal   2CPU,2G RAM,20G DISK,1网卡          管理节点

node01    192.168.100.114   CentOS-6.4-x86_64-minimal   4CPU,16G RAM,300G DISK,2网卡      计算节点

nebula下载地址:

http://downloads.opennebula.org/packages/opennebula-4.2.0/opennebula-4.2.0.tar.gz

二、初始系统配置:

系统安装后,管理节点和计算节点采用同样步骤做初始配置:

1.配置/etc/hosts文件

添加计算节点IP和主机名的对应关系,管理节点添加所有计算节点的IP和主机名对应关系,计算节点只需添加管理节点的IP和主机名对应关系。

# vi /etc/hosts

192.168.100.218  nebula

192.168.100.114  node01

2.关闭selinux

# vi /etc/selinux/config

将SELINUX=enforcing修改为SELINUX=disabled

3.关闭iptables

# chkconfig iptables off

# chkconfig ip6tables off

4.创建用户组和用户

这里设置oneadmin密码为chensh
# mkdir -p /srv/cloud/
# groupadd -g 1000 cloud
# useradd -u 1000 -g cloud -m oneadmin -d /srv/cloud/one -s /bin/bash
# passwd oneadmin
# chown -R oneadmin:cloud /srv/cloud/

5.关闭其他不需要的服务(可选)

1
2
3
4
5
6
#!/bin/bash
SERVICE_SUM="auditd blk-availability iscsi iscsid lvm2-monitor mdmonitor multipathd netconsole postfix rdisc restorecond saslauthd"
echo $SERVICE_SUM | xargs -n1 | while read SERVICE
do
    chkconfig $SERVICE off
done




6.重启系统

# reboot

三、管理节点配置:

1.安装需要的软件和编译工具

[root@nebula ~]# yum -y install gcc-c++ libvirt mysql-server mysql-devel ruby ruby-devel rubygems scons xmlrpc-c-devel genisoimage wget

2.配置libvirtd.conf和qemu.conf,找到相应项做如下更改

[root@nebula ~]# vi /etc/libvirt/libvirtd.conf

listen_tcp = 1

unix_sock_group = "cloud"

unix_sock_rw_perms = "0770"

auth_unix_ro = "none"

auth_unix_rw = "none"

[root@nebula ~]# vi /etc/libvirt/qemu.conf

vnc_listen = “0.0.0.0″

user = "oneadmin"                    /*oneadmin用户管理虚拟机*/

group = "cloud"

dynamic_ownership = 0               /*禁止虚拟镜像动态调整所有权限*/

[root@nebula ~]# ln -s /bin/vi /usr/bin/vi                          /*添加该软连接,否则onedatastore update会报错*/   

[root@nebula ~]# chmod o-w /srv/cloud                                  /*去掉cloud目录的写权限*/

[root@nebula ~]# /etc/init.d/libvirtd restart                        /*重启libvirt服务*/

[root@nebula ~]# chown oneadmin:cloud /var/run/libvirt/libvirt-sock                  /*修改libvirt-sock所属用户和组*/

3.配置oneadmin下ssh-keygen

[root@nebula ~]# su -l oneadmin

[oneadmin@nebula ~]$ ssh-keygen

[oneadmin@nebula ~]$ cat ~/.ssh/id_rsa.pub > ~/.ssh/authorized_keys

[oneadmin@nebula ~]$ echo "Host *" >> ~/.ssh/config

[oneadmin@nebula ~]$ echo "StrictHostKeyChecking no" >> ~/.ssh/config

[oneadmin@nebula ~]$ exit

4.配置nebula数据库

[root@nebula ~]# service mysqld start                    /*启动mysql数据库*/

[root@nebula ~]# chkconfig mysqld on                   /*设置mysql数据库开机启动*/

[root@nebula ~]# mysqladmin -uroot password “passwd”                     /*设置mysql数据库密码为passwd*/

[root@nebula ~]# mysql -uroot -ppasswd             /*登录mysql数据库*/

mysql> CREATE DATABASE opennebula;           /*创建nebula数据库*/

mysql> CREATE USER 'oneadmin'@'localhost' IDENTIFIED BY 'oneadmin';      /*创建mysql用户和密码*/

mysql> GRANT ALL PRIVILEGES ON opennebula.* TO 'oneadmin' IDENTIFIED BY 'oneadmin';    /*将opennebula数据库赋予oneadmin用户*/

mysql> FLUSH PRIVILEGES;           /*刷新配置,使配置生效*/

mysql> quit;               /*退出mysql数据库*/

5.编译安装OpenNebula4.2.0

[root@nebula ~]# su -l oneadmin

[oneadmin@nebula ~]$ wget http://downloads.opennebula.org/packages/opennebula-4.2.0/opennebula-4.2.0.tar.gz

[oneadmin@nebula ~]$ ls

opennebula-4.2.0.tar.gz

[oneadmin@nebula ~]$ tar -zxvf opennebula-4.2.0.tar.gz

[oneadmin@nebula ~]$ cd opennebula-4.2.0

[oneadmin@nebula opennebula-4.2.0]$ scons sqlite=no mysql=yes                 /*在此OpenNebula使用Mysql数据库*/

[oneadmin@nebula opennebula-4.2.0]$ ./install.sh -u oneadmin -g cloud -d /srv/cloud/one

[oneadmin@nebula opennebula-4.2.0]$ cd

[oneadmin@nebula ~]$

6.设置.bash_profile环境变量

[root@nebula ~]#  vi ~/.bash_profile

加入如下内容:

export ONE_LOCATION=/srv/cloud/one

export ONE_AUTH=$ONE_LOCATION/.one/one_auth

export ONE_XMLRPC=http://localhost:2633/RPC2

export PATH=$ONE_LOCATION/bin:/usr/local/bin:/var/lib/gems/1.8/bin/:$PATH

执行.bash_profile,使得这些环境变量生效:

[oneadmin@nebula ~]$ source ~/.bash_profile

7.设置SunStone的用户名和密码

编辑~/.one/one_auth

[oneadmin@nebula ~]$ mkdir ~/.one

[oneadmin@nebula ~]$ echo "oneadmin:password" > ~/.one/one_auth

[oneadmin@nebula ~]$ chmod 640 ~/.one/one_auth

8.设置nebula的数据库参数和datastore路径

编辑~/etc/oned.conf

[oneadmin@nebula ~]$ vi etc/oned.conf

# DB = [ backend = "sqlite" ]

 

# Sample configuration for MySQL

DB = [ backend = "mysql",

       server  = "localhost",

       port    = 0,

       user    = "oneadmin",

       passwd  = "oneadmin",

       db_name = "opennebula" ]


#DATASTORE_LOCATION = /var/lib/one/datastores

改为

DATASTORE_LOCATION = /srv/cloud/one/datastores

9.修改datastore,使节点使用本地存储

[oneadmin@nebula ~]$ one start             /*启动nebula one服务*/

[oneadmin@nebula ~]$ onedatastore update 0

将TM_MAD="shared"修改为TM_MAD="ssh"

[oneadmin@nebula ~]$ onedatastore update 1

将TM_MAD="shared"修改为TM_MAD="ssh"

设置镜像安全路径,添加下行(可选):

SAFE_DIRS="/srv/cloud/one/images"

[oneadmin@nebula ~]$mkdir  ~/images            /*创建镜像存放文件夹(可选)*/

10.安装gem包

[root@nebula ~]# gem install json sinatra

……………………

Successfully installed json-1.8.1
Successfully installed rack-1.5.2
Successfully installed tilt-1.4.1
Successfully installed rack-protection-1.5.1
Successfully installed sinatra-1.4.4

……………………

11.修改sunstone-server.conf配置

[root@nebula ~]# su - oneadmin

[oneadmin@nebula ~]$ vi etc/sunstone-server.conf

将原有:host: 127.0.0.1中IP字段修改为本机IP或者0.0.0.0:

:host: 0.0.0.0

保存退出。

12.启动服务

[oneadmin@nebula ~]$ one stop                         /*重启one服务*/

[oneadmin@nebula ~]$ one start

[oneadmin@nebula ~]$ sunstone-server start             /*启动SunStone服务*/

VNC proxy started
sunstone-server started

****************************************************************************************************************************************************

四、计算节点配置:

1.设置网络桥接(可选):

(1).编辑/etc/sysconfig/network内容如下:

[root@node01 ~]# vi /etc/sysconfig/network

NETWORKING=yes

HOSTNAME=node01

GATEWAY=br0

(2).编辑/etc/sysconfig/network-scripts/ifcfg-eth0内容如下:

[root@node01 ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0 

DEVICE="eth0"

ONBOOT=yes

BRIDGE=br0

(3).创建ifcfg-br0文件,内容如下:

[root@node01 ~]# vi /etc/sysconfig/network-scripts/ifcfg-br0

DEVICE=br0

BOOTPROTO=static

ONBOOT=yes

TYPE=Bridge

IPADDR=192.168.100.114

NETMASK=255.255.255.0

GATEWAY=192.168.100.1

BROADCAST=192.168.100.255

DELAY=0

(4).重启网络服务:

[root@node01 ~]# service network restart

2.安装计算节点依赖的软件包

[root@node01 ~]# yum -y install kvm libvirt ruby sudo vconfig

3.配置libvirtd.conf和qemu.conf,找到相应项做如下更改

[root@nebula ~]# vi /etc/libvirt/libvirtd.conf

listen_tcp = 1

unix_sock_group = "cloud"

unix_sock_rw_perms = "0770"

auth_unix_ro = "none"

auth_unix_rw = "none"

[root@nebula ~]# vi /etc/libvirt/qemu.conf

vnc_listen = “0.0.0.0″

user = "oneadmin"                    /*oneadmin用户管理虚拟机*/

group = "cloud"

dynamic_ownership = 0               /*禁止虚拟镜像动态调整所有权限*/

[root@node01 ~]# ln -s /usr/libexec/qemu-kvm /usr/bin/kvm                  /*做一个qemu-kvm到kvm的软链接*/

[root@node01 ~]# ln -s /usr/sbin/brctl /sbin/brctl           /*创建/sbin/brctl链接,否则创建虚拟机vlan接口网络会报错*/           

[root@node01 ~]# chmod o-w /srv/cloud                                  /*去掉cloud目录的写权限*/

[root@node01 ~]# /etc/init.d/libvirtd restart                        /*重启libvirt服务*/

[root@node01 ~]# chown oneadmin:cloud /var/run/libvirt/libvirt-sock                  /*修改libvirt-sock所属用户和组*/

4.sudo配置

编辑/etc/sudoers让oneadmin用户有直接执行sudo的权限

[root@node01 ~]# vi /etc/sudoers
……………………………省略若干行……………………
# Disable "ssh hostname sudo <cmd>", because it will show the password in clear.
#         You have to run "ssh -t hostname sudo <cmd>".
#
# Defaults    requiretty                        /*将该行注释掉*/

……………………………省略若干行……………………

# Allow root to run any commands anywhere
root    ALL=(ALL)       ALL
oneadmin    ALL=(ALL)       ALL                         /*添加该项,oneadmin用户具有root的命令权限*/
……………………………省略若干行……………………
## Same thing without a password
# %wheel        ALL=(ALL)       NOPASSWD: ALL
%cloud        ALL=(ALL)       NOPASSWD: ALL                 /*添加该项,cloud组用户执行sudo免密码*/
……………………………省略若干行……………………

保存退出;

5.配置与管理节点的无密码登陆

拷贝管理节点密钥到oneadmin用户家目录下:

[root@node01 ~]# su -l oneadmin

[oneadmin@node01 ~]$ scp -r oneadmin@nebula:~/.ssh ./

The authenticity of host 'nebula (192.168.100.218)' can't be established.
RSA key fingerprint is 24:09:18:13:9c:1f:94:93:dd:b8:73:4e:12:1d:40:fd.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'nebula' (RSA) to the list of known hosts.
oneadmin@192.168.100.218's password:
config                                                100%   32     0.0KB/s   00:00    
authorized_keys                                100%  397     0.4KB/s   00:00    
id_rsa                                                100% 1675     1.6KB/s   00:00    
id_rsa.pub                                         100%  397     0.4KB/s   00:00    

[oneadmin@node01 ~]$ ls .ssh/
authorized_keys  config  id_rsa  id_rsa.pub

[oneadmin@node01 ~]$ exit

****************************************************************************************************************************************************

五、登陆验证

配置完毕,可通过firefox或Chrome登陆SunStone页面添加计算节点,此例子中SunStone用户名为oneadmin密码为password

原文地址:https://www.cnblogs.com/myiaas/p/4161334.html