基本需求
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 -angrep 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,是我发现问题的地方,它提示我没有权限。
本文出自 "sery" 博客,请务必保留此出处http://sery.blog.51cto.com/10037/1236505
昨天:周六和的今天周日的合在一起了,最近Cantgis比较忙。。。
管道绑定参数绑定到脚本区
我看到许多的PowerShell对堆栈溢出 看起来类似下面:
Get-ChildItem *.txt | Foreach { Rename-Item -Path $_ -NewName "$($_.basename).bak" }
上面使用的foreach对象cmdlet是不必要的,因为"重命名"项目接受管道输入路径和新名称参数。
下面的例子大家可以看到结果
PS> $obj = New-Object PSObject Property ` @{Path='C:\Users\Cantgis\foo.txt';NewName='bar.txt'} PS> $obj | Rename-Item WhatIf What if: Performing operation "Rename File" on Target "Item: C:\Users\Cantgis\foo.txt Destination: C:\Users\Cantgis\bar.txt".
你也许会想,虽然这可能是一个有趣的问题,但是它是如何对比早期的powershell版本的呢?
如果使用foreach对象会更好吗?
powershell有一个诀窍来帮助我们实现这个重命名操作。
诀窍是,PowerShell将接受任何参数是管道的约束,脚本调用的脚本区的一段。
你可以看到,如果一个参数是通过获取帮助,例如管道绑定:
PS> Get-Help Rename-Item ... -LiteralPath ... Accept pipeline input? true (ByPropertyName) -Path ... Accept pipeline input? true (ByValue, ByPropertyName) -NewName ... Position? 2 Accept pipeline input? true (ByPropertyName)
上面的信息告诉我们,LiteralPath:路径和新名称的参数接受管道输入。
Get-ChildItem:管道输出,重命名项:cmdlet LiteralPath参数。
我们可以使用脚本区结合这个诀窍来指定新名称。
PS> Get-ChildItem *.txt | Rename-Item -NewName {"$($_.BaseName).bak"}
使用PowerShell 3.0 输出GridView的多重选择
在PowerShell 3.0的更新GridView的命令支持PassThru参数。
此外,OUT-GridView控件支持多选的项目传入以及取消操作。
例如,你可能想从列表中选择进程停止。
PS> Get-Process devenv | Select Name,Id,MainWindowTitle | Out-GridView -PassThru | Stop-Process
此命令显示出GridView的对话框,如下图所示。
我们可以看到基于MainWindowTitle属性的Visual Studio实例。
我可以选择一个或多个devenv的进程。
如果我按"确定",然后我选择的进程将被停止。
如果我按出GridView的对话框上的取消按钮,停止管道,也没有进程被停止哦!
使用PowerShell社区的扩展的命令来显示树视图_关于供应商的
提示:如果需要可以下载免费的PowerShell社区扩展模块(PSCX)。
PSCX是一组通用的PowerShell命令。它提供的命令之一是显示树,基于PowerShell驱动器,如:
-
WSMan:\
-
Cert:\
-
HKLM:\
-
IIS:\ (if you have imported the WebAdministration module)
通常情况下,如果你想查找的驱动器,你可以使用Windows资源管理器。
不幸的是,除了那些基于文件系统上的,剩下的Windows资源管理器比不上可视性PowerShell驱动器。
同样不幸的是,像WSMAN驱动器和IIS:即所包含的功能是不是很发现,隐藏了很多功能。
这时这个社区提供的扩展模块命令,生成显示树是非常方便的。
它可以在PowerShell驱动器,来显示文件系统结构在控制台显示的信息。
例如,下面是在IIS上运行显示树的输出示例:\驱动器:
PS> Show-Tree IIS:\ -Depth 3 IIS:\ ├──AppPools │ ├──ASP.NET v4.0 │ │ └──WorkerProcesses │ ├──ASP.NET v4.0 Classic │ │ └──WorkerProcesses │ ├──Classic .NET AppPool │ │ └──WorkerProcesses │ └──DefaultAppPool │ └──WorkerProcesses ├──Sites │ └──Default Web Site │ ├──aspnet_client │ └──Blog └──SslBindings
在一般情况下,在PowerShell驱动器执行条件,可以是容器也可以是项目。
我们在上面看到的仅是容器项目。
例如,在项目属性为默认应用:
PS> Show-Tree IIS:\AppPools\DefaultAppPool -ShowProperty IIS:\AppPools\DefaultAppPool ├──Property: applicationPoolSid = S-1-5-82-3006700770-424185619-1745488364-7... ├──Property: Attributes = Microsoft.IIs.PowerShell.Framework.ConfigurationAt... ├──Property: autoStart = True ├──Property: ChildElements = Microsoft.IIs.PowerShell.Framework.Configuratio... ├──Property: CLRConfigFile = ├──Property: cpu = Microsoft.IIs.PowerShell.Framework.ConfigurationElement ├──Property: ElementTagName = add ├─?p>阅读更多内容
没有评论:
发表评论