cloudstack 4管理器安装备忘
基本需求
1、硬件支持虚拟化
2、centos 6.3 64位系统
准备工作
1、确保selinux处于关闭状态
2、确保hostname -f有正确的输出。我遇到执行出现"hostname:unknown host",经查是因为/etc/resolv.conf设置了 search所致,干掉它。再检查/etc/hosts文件。
3、确保服务器能访问互联网,因为yum 安装需要远程的安装源。
开始安装
1、配置yum仓库 reposity
创建文件/etc/yum.repo.d/cloudstack.repo,使其内容为:
[cloudstack]
name=cloudstack
baseurl=http://cloudstack.apt-get.eu/rhel/4.0/
enabled=1
gpgcheck=0
2、安装时间服务:
yum install ntp
3、安装管理服务器器
任意路径执行 yum install cloud-client ,稀里哗啦一通,神不知鬼不觉的不知道安装了啥!通过事后侦查,安装了ant、jdk、tomcat6等等,似乎省了不少事情。不过后边维护和排错,就费劲了。
4、安装mysql
偷懒 yum install mysql-server.需要设置一下密码。也一并偷懒,以mysql_secure_install代替了。官方文档说明,需要在/etc/my.cnf加下面的内容,注意,要放在[mysqld]的下面第一行。可不可以放其他地方,有时间可以试试。其内容如下:
innodb_rollback_on_timeout = 1
innodb_lock_wait_timeout = 600
max_connections = 350
log-bin = mysql-bin
binlog-format = 'ROW'
比我日常安装的数据库选项文件/etc/my.cnf简单多了。
5、创建cloudstack相关的数据库和表
执行命令 cloud-setup-databases cloud:cloudstack@localhost --deploy-as=root:cloudstack
root:后边那个cloudstack是数据库的root密码,初始化时(mysql_secure_install设定的);cloud:cloudstack@localhost--cloud是连接的用户名,紧跟着的是cloud的连接密码,你可以指定一个复杂的哟。
文件cloud-setup-databases 是用python写的一个工具,好复杂,本人表示看不懂。不过当它执行完毕后,数据库连接的配置文件我却找到了,具体是/etc/cloud/management/db.properties 。打开可以看到用户名,数据库主机名,还有加密后的密码。
实际上为了安全,还需要初始化cloud数据库采用加密措施,这里一并简化了。
6、启动cloudstack管理器:
cloud-setup-management
如果输出为:
Starting to configure CloudStack Management Server:
Configure sudoers ... [OK]
Configure Firewall ... [OK]
Configure CloudStack Management Server ...[OK]
CloudStack Management Server setup is Done!
基本上可以认为是正确了。但你执行netstat -an|grep 8080的时候,根本没我们期待的。我在这里费了些时间。这个也是问题的关键,不解决服务一直都起不来。执行chown -R cloud:cloud /var/log/cloud/management ,然后再启动,浏览器输入 http://manager_ip:8080/client ,登录窗口就出来了。有人会问,你凭什么知道问题在这里呢?我有个习惯,凡是遇到问题,先找找有没有日志,然后才是搜索引擎。我先到/var/log下逛一圈,真有发现,有个目录是cloud,里面的子目录有
rwxrwxr-x. 2 root cloud 4096 Apr 21 03:00 agent
drwxr-xr-x. 2 root root 4096 Apr 21 03:00 ipallocator
drwxrwxr-x. 2 cloud cloud 4096 Jul 1 00:04 management
-rw-r--r--. 1 root root 5667 Jul 1 00:33 setupManagement.log
花点时间,查看目录下面的文件,就会有收获。management目录下的catalina.out,是我发现问题的地方,它提示我没有权限。