mirror of
https://github.com/apache/cloudstack.git
synced 2025-12-18 11:34:23 +01:00
use iso to patch systemvm
Conflicts: core/src/com/cloud/hypervisor/xen/resource/CitrixResourceBase.java scripts/vm/hypervisor/xenserver/xenserver56/patch
This commit is contained in:
parent
31081a681c
commit
3565f8d21b
@ -107,6 +107,10 @@
|
|||||||
<property name="meld.home" location="/usr/local/bin" />
|
<property name="meld.home" location="/usr/local/bin" />
|
||||||
<property name="assertion" value="-da" />
|
<property name="assertion" value="-da" />
|
||||||
|
|
||||||
|
<!-- directories for patches -->
|
||||||
|
<property name="kvm.patch.dist.dir" location="${dist.dir}/patches/kvm" />
|
||||||
|
<property name="xenserver.patch.dist.dir" location="${dist.dir}/patches/xenserver" />
|
||||||
|
|
||||||
<!-- directories for testing -->
|
<!-- directories for testing -->
|
||||||
<property name="test.target.dir" location="${target.dir}/test" />
|
<property name="test.target.dir" location="${target.dir}/test" />
|
||||||
<property name="test.classes.dir" location="${test.target.dir}/classes" />
|
<property name="test.classes.dir" location="${test.target.dir}/classes" />
|
||||||
@ -519,7 +523,8 @@
|
|||||||
|
|
||||||
|
|
||||||
<target name="build-kvm-domr-patch" depends="-init">
|
<target name="build-kvm-domr-patch" depends="-init">
|
||||||
<tar destfile="${dist.dir}/patch.tar">
|
<mkdir dir="${kvm.patch.dist.dir}" />
|
||||||
|
<tar destfile="${kvm.patch.dist.dir}/patch.tar">
|
||||||
<tarfileset dir="${base.dir}/patches/kvm" filemode="755">
|
<tarfileset dir="${base.dir}/patches/kvm" filemode="755">
|
||||||
<include name="**/*"/>
|
<include name="**/*"/>
|
||||||
<exclude name="**/.classpath" />
|
<exclude name="**/.classpath" />
|
||||||
@ -531,8 +536,26 @@
|
|||||||
<exclude name="**/.project" />
|
<exclude name="**/.project" />
|
||||||
</tarfileset>
|
</tarfileset>
|
||||||
</tar>
|
</tar>
|
||||||
<gzip destfile="${dist.dir}/patch.tgz" src="${dist.dir}/patch.tar"/>
|
<gzip destfile="${kvm.patch.dist.dir}/patch.tgz" src="${kvm.patch.dist.dir}/patch.tar"/>
|
||||||
<delete file="${dist.dir}/patch.tar"/>
|
<delete file="${kvm.patch.dist.dir}/patch.tar"/>
|
||||||
|
</target>
|
||||||
|
|
||||||
|
<target name="build-xenserver-domr-patch" depends="-init">
|
||||||
|
<mkdir dir="${xenserver.patch.dist.dir}" />
|
||||||
|
<tar destfile="${xenserver.patch.dist.dir}/patch.tar">
|
||||||
|
<tarfileset dir="${base.dir}/patches/xenserver" filemode="755">
|
||||||
|
<include name="**/*"/>
|
||||||
|
<exclude name="**/.classpath" />
|
||||||
|
<exclude name="**/.project" />
|
||||||
|
</tarfileset>
|
||||||
|
<tarfileset dir="${base.dir}/patches/shared" filemode="755">
|
||||||
|
<include name="**/*"/>
|
||||||
|
<exclude name="**/.classpath" />
|
||||||
|
<exclude name="**/.project" />
|
||||||
|
</tarfileset>
|
||||||
|
</tar>
|
||||||
|
<gzip destfile="${xenserver.patch.dist.dir}/patch.tgz" src="${xenserver.patch.dist.dir}/patch.tar"/>
|
||||||
|
<delete file="${xenserver.patch.dist.dir}/patch.tar"/>
|
||||||
</target>
|
</target>
|
||||||
|
|
||||||
<target name="help">
|
<target name="help">
|
||||||
|
|||||||
@ -100,7 +100,7 @@
|
|||||||
</target>
|
</target>
|
||||||
|
|
||||||
<target name="deploy-server" depends="deploy-common" >
|
<target name="deploy-server" depends="deploy-common" >
|
||||||
<copy todir="${server.deploy.to.dir}/webapps/client/WEB-INF/lib/vms" file="${dist.dir}/systemvm.zip" />
|
<copy todir="${server.deploy.to.dir}/webapps/client/WEB-INF/lib/vms" file="${dist.dir}/systemvm.iso" />
|
||||||
</target>
|
</target>
|
||||||
|
|
||||||
<target name="deploy-common" >
|
<target name="deploy-common" >
|
||||||
@ -114,7 +114,6 @@
|
|||||||
<include name="*.jar"/>
|
<include name="*.jar"/>
|
||||||
</fileset>
|
</fileset>
|
||||||
</copy>
|
</copy>
|
||||||
<copy todir="${server.deploy.to.dir}/webapps/client/WEB-INF/lib/scripts/vm/hypervisor/xenserver" file="${dist.dir}/patch.tgz" />
|
|
||||||
<touch file="${server.deploy.to.dir}/webapps/client/WEB-INF/lib/scripts/vm/hypervisor/xenserver/version"/>
|
<touch file="${server.deploy.to.dir}/webapps/client/WEB-INF/lib/scripts/vm/hypervisor/xenserver/version"/>
|
||||||
<echo file="${server.deploy.to.dir}/webapps/client/WEB-INF/lib/scripts/vm/hypervisor/xenserver/version" append="false" message="${version}.${build.number}"/>
|
<echo file="${server.deploy.to.dir}/webapps/client/WEB-INF/lib/scripts/vm/hypervisor/xenserver/version" append="false" message="${version}.${build.number}"/>
|
||||||
<copy overwrite="true" todir="${server.deploy.to.dir}/conf">
|
<copy overwrite="true" todir="${server.deploy.to.dir}/conf">
|
||||||
|
|||||||
@ -94,7 +94,7 @@
|
|||||||
|
|
||||||
<target name="package-agent" depends="-init-package, package-oss-systemvm, build-kvm-domr-patch, package-agent-common">
|
<target name="package-agent" depends="-init-package, package-oss-systemvm, build-kvm-domr-patch, package-agent-common">
|
||||||
<zip destfile="${dist.dir}/agent.zip" duplicate="preserve" update="true">
|
<zip destfile="${dist.dir}/agent.zip" duplicate="preserve" update="true">
|
||||||
<zipfileset dir="${dist.dir}" prefix="scripts/vm/hypervisor/kvm">
|
<zipfileset dir="${kvm.patch.dist.dir}" prefix="scripts/vm/hypervisor/kvm">
|
||||||
<include name="patch.tgz" />
|
<include name="patch.tgz" />
|
||||||
</zipfileset>
|
</zipfileset>
|
||||||
<zipfileset dir="${dist.dir}" prefix="vms" filemode="555">
|
<zipfileset dir="${dist.dir}" prefix="vms" filemode="555">
|
||||||
@ -103,6 +103,18 @@
|
|||||||
</zip>
|
</zip>
|
||||||
</target>
|
</target>
|
||||||
|
|
||||||
|
<target name="package-oss-systemvm-iso" depends="-init-package, package-oss-systemvm, build-xenserver-domr-patch">
|
||||||
|
<exec executable="mkisofs" dir="${dist.dir}">
|
||||||
|
<arg value="-quiet"/>
|
||||||
|
<arg value="-r"/>
|
||||||
|
<arg value="-o"/>
|
||||||
|
<arg value="systemvm.iso"/>
|
||||||
|
<arg value="systemvm.zip"/>
|
||||||
|
<arg value="patches/xenserver/patch.tgz"/>
|
||||||
|
</exec>
|
||||||
|
</target>
|
||||||
|
|
||||||
|
|
||||||
<target name="package-agent-simulator" depends="-init-package">
|
<target name="package-agent-simulator" depends="-init-package">
|
||||||
<delete file="${dist.dir}/agent-simulator.zip" />
|
<delete file="${dist.dir}/agent-simulator.zip" />
|
||||||
<zip destfile="${dist.dir}/agent-simulator.zip" duplicate="preserve">
|
<zip destfile="${dist.dir}/agent-simulator.zip" duplicate="preserve">
|
||||||
@ -123,7 +135,7 @@
|
|||||||
</zip>
|
</zip>
|
||||||
</target>
|
</target>
|
||||||
|
|
||||||
<target name="build-all" depends="build-opensource, build-kvm-domr-patch, build-ui, build-war-oss, package-oss-systemvm">
|
<target name="build-all" depends="build-opensource, build-kvm-domr-patch, build-ui, build-war-oss, package-oss-systemvm-iso">
|
||||||
</target>
|
</target>
|
||||||
|
|
||||||
<target name="build-war-oss" depends="-init-package" description="Compile the GWT client UI and builds WAR file.">
|
<target name="build-war-oss" depends="-init-package" description="Compile the GWT client UI and builds WAR file.">
|
||||||
|
|||||||
@ -110,6 +110,8 @@
|
|||||||
<dao name="GuestOSDao" class="com.cloud.storage.dao.GuestOSDaoImpl"/>
|
<dao name="GuestOSDao" class="com.cloud.storage.dao.GuestOSDaoImpl"/>
|
||||||
<dao name="GuestOSCategoryDao" class="com.cloud.storage.dao.GuestOSCategoryDaoImpl"/>
|
<dao name="GuestOSCategoryDao" class="com.cloud.storage.dao.GuestOSCategoryDaoImpl"/>
|
||||||
<dao name="ClusterDao" class="com.cloud.dc.dao.ClusterDaoImpl"/>
|
<dao name="ClusterDao" class="com.cloud.dc.dao.ClusterDaoImpl"/>
|
||||||
|
<dao name="NetworkProfileDao" class="com.cloud.network.dao.NetworkProfileDaoImpl"/>
|
||||||
|
<dao name="NetworkOfferingDao" class="com.cloud.offerings.dao.NetworkOfferingDaoImpl"/>
|
||||||
|
|
||||||
<adapters key="com.cloud.agent.manager.allocator.HostAllocator">
|
<adapters key="com.cloud.agent.manager.allocator.HostAllocator">
|
||||||
<adapter name="FirstFitRouting" class="com.cloud.agent.manager.allocator.impl.FirstFitRoutingAllocator"/>
|
<adapter name="FirstFitRouting" class="com.cloud.agent.manager.allocator.impl.FirstFitRoutingAllocator"/>
|
||||||
|
|||||||
@ -152,6 +152,7 @@ import com.cloud.host.Host.Type;
|
|||||||
import com.cloud.hypervisor.Hypervisor;
|
import com.cloud.hypervisor.Hypervisor;
|
||||||
import com.cloud.network.Network.BroadcastDomainType;
|
import com.cloud.network.Network.BroadcastDomainType;
|
||||||
import com.cloud.network.Network.TrafficType;
|
import com.cloud.network.Network.TrafficType;
|
||||||
|
import com.cloud.hypervisor.xen.resource.XenServerConnectionPool.XenServerConnection;
|
||||||
import com.cloud.resource.ServerResource;
|
import com.cloud.resource.ServerResource;
|
||||||
import com.cloud.storage.Storage;
|
import com.cloud.storage.Storage;
|
||||||
import com.cloud.storage.Storage.ImageFormat;
|
import com.cloud.storage.Storage.ImageFormat;
|
||||||
@ -1063,29 +1064,7 @@ public abstract class CitrixResourceBase implements StoragePoolResource, ServerR
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected Answer execute(ModifySshKeysCommand cmd) {
|
protected Answer execute(ModifySshKeysCommand cmd) {
|
||||||
String publickey = cmd.getPubKey();
|
|
||||||
String privatekey = cmd.getPrvKey();
|
|
||||||
|
|
||||||
com.trilead.ssh2.Connection sshConnection = new com.trilead.ssh2.Connection(_host.ip, 22);
|
|
||||||
try {
|
|
||||||
sshConnection.connect(null, 60000, 60000);
|
|
||||||
if (!sshConnection.authenticateWithPassword(_username, _password)) {
|
|
||||||
throw new Exception("Unable to authenticate");
|
|
||||||
}
|
|
||||||
SCPClient scp = new SCPClient(sshConnection);
|
|
||||||
|
|
||||||
scp.put(publickey.getBytes(), "id_rsa.pub", "/opt/xensource/bin", "0600");
|
|
||||||
scp.put(privatekey.getBytes(), "id_rsa", "/opt/xensource/bin", "0600");
|
|
||||||
scp.put(privatekey.getBytes(), "id_rsa.cloud", "/root/.ssh", "0600");
|
|
||||||
return new Answer(cmd);
|
return new Answer(cmd);
|
||||||
|
|
||||||
} catch (Exception e) {
|
|
||||||
String msg = " scp ssh key failed due to " + e.toString() + " - " + e.getMessage();
|
|
||||||
s_logger.warn(msg);
|
|
||||||
} finally {
|
|
||||||
sshConnection.close();
|
|
||||||
}
|
|
||||||
return new Answer(cmd, false, "modifySshkeys failed");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean doPingTest(final String computingHostIp) {
|
private boolean doPingTest(final String computingHostIp) {
|
||||||
@ -3187,13 +3166,6 @@ public abstract class CitrixResourceBase implements StoragePoolResource, ServerR
|
|||||||
|
|
||||||
Ternary<SR, VDI, VolumeVO> mount = mounts.get(0);
|
Ternary<SR, VDI, VolumeVO> mount = mounts.get(0);
|
||||||
|
|
||||||
if (!patchSystemVm(mount.second(), vmName)) { // FIXME make this
|
|
||||||
// nonspecific
|
|
||||||
String msg = "patch system vm failed";
|
|
||||||
s_logger.warn(msg);
|
|
||||||
return msg;
|
|
||||||
}
|
|
||||||
|
|
||||||
Set<VM> templates = VM.getByNameLabel(conn, "CentOS 5.3");
|
Set<VM> templates = VM.getByNameLabel(conn, "CentOS 5.3");
|
||||||
if (templates.size() == 0) {
|
if (templates.size() == 0) {
|
||||||
templates = VM.getByNameLabel(conn, "CentOS 5.3 (64-bit)");
|
templates = VM.getByNameLabel(conn, "CentOS 5.3 (64-bit)");
|
||||||
@ -3233,6 +3205,17 @@ public abstract class CitrixResourceBase implements StoragePoolResource, ServerR
|
|||||||
VBD.create(conn, vbdr);
|
VBD.create(conn, vbdr);
|
||||||
|
|
||||||
|
|
||||||
|
/* create CD-ROM VBD */
|
||||||
|
VBD.Record cdromVBDR = new VBD.Record();
|
||||||
|
cdromVBDR.VM = vm;
|
||||||
|
cdromVBDR.empty = true;
|
||||||
|
cdromVBDR.bootable = false;
|
||||||
|
cdromVBDR.userdevice = "3";
|
||||||
|
cdromVBDR.mode = Types.VbdMode.RO;
|
||||||
|
cdromVBDR.type = Types.VbdType.CD;
|
||||||
|
VBD cdromVBD = VBD.create(conn, cdromVBDR);
|
||||||
|
cdromVBD.insert(conn, VDI.getByUuid(conn, _host.systemvmisouuid));
|
||||||
|
|
||||||
/* create VIF0 */
|
/* create VIF0 */
|
||||||
VIF.Record vifr = new VIF.Record();
|
VIF.Record vifr = new VIF.Record();
|
||||||
vifr.VM = vm;
|
vifr.VM = vm;
|
||||||
@ -3508,8 +3491,6 @@ public abstract class CitrixResourceBase implements StoragePoolResource, ServerR
|
|||||||
s_logger.debug("Slave logon successful. session= " + slaveSession);
|
s_logger.debug("Slave logon successful. session= " + slaveSession);
|
||||||
}
|
}
|
||||||
Host host = Host.getByUuid(slaveConn, _host.uuid);
|
Host host = Host.getByUuid(slaveConn, _host.uuid);
|
||||||
|
|
||||||
|
|
||||||
for (int i = 0; i < params.length; i += 2) {
|
for (int i = 0; i < params.length; i += 2) {
|
||||||
args.put(params[i], params[i + 1]);
|
args.put(params[i], params[i + 1]);
|
||||||
}
|
}
|
||||||
@ -4014,6 +3995,37 @@ public abstract class CitrixResourceBase implements StoragePoolResource, ServerR
|
|||||||
Host myself = Host.getByUuid(conn, _host.uuid);
|
Host myself = Host.getByUuid(conn, _host.uuid);
|
||||||
_host.pool = getPoolUuid();
|
_host.pool = getPoolUuid();
|
||||||
|
|
||||||
|
boolean findsystemvmiso = false;
|
||||||
|
Set<SR> srs = SR.getByNameLabel(conn, "XenServer Tools");
|
||||||
|
if( srs.size() != 1 ) {
|
||||||
|
throw new CloudRuntimeException("There are " + srs.size() + " SRs with name XenServer Tools");
|
||||||
|
}
|
||||||
|
SR sr = srs.iterator().next();
|
||||||
|
sr.scan(conn);
|
||||||
|
|
||||||
|
SR.Record srr = sr.getRecord(conn);
|
||||||
|
_host.systemvmisouuid = null;
|
||||||
|
for( VDI vdi : srr.VDIs ) {
|
||||||
|
VDI.Record vdir = vdi.getRecord(conn);
|
||||||
|
if(vdir.nameLabel.contains("systemvm-premium")){
|
||||||
|
_host.systemvmisouuid = vdir.uuid;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if( _host.systemvmisouuid == null ) {
|
||||||
|
for( VDI vdi : srr.VDIs ) {
|
||||||
|
VDI.Record vdir = vdi.getRecord(conn);
|
||||||
|
if(vdir.nameLabel.contains("systemvm")){
|
||||||
|
_host.systemvmisouuid = vdir.uuid;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if( _host.systemvmisouuid == null ) {
|
||||||
|
throw new CloudRuntimeException("can not find systemvmiso");
|
||||||
|
}
|
||||||
|
|
||||||
String name = "cloud-private";
|
String name = "cloud-private";
|
||||||
if (_privateNetworkName != null) {
|
if (_privateNetworkName != null) {
|
||||||
name = _privateNetworkName;
|
name = _privateNetworkName;
|
||||||
@ -4344,17 +4356,13 @@ public abstract class CitrixResourceBase implements StoragePoolResource, ServerR
|
|||||||
scp.put(f, d, p);
|
scp.put(f, d, p);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
throw new CloudRuntimeException("Unable to setup the server correctly", e);
|
throw new CloudRuntimeException("Unable to setup the server correctly", e);
|
||||||
} finally {
|
} finally {
|
||||||
sshConnection.close();
|
sshConnection.close();
|
||||||
}
|
}
|
||||||
try {
|
|
||||||
// wait 2 seconds before call plugin
|
|
||||||
Thread.sleep(2000);
|
|
||||||
} catch (final InterruptedException ex) {
|
|
||||||
|
|
||||||
}
|
|
||||||
if (!setIptables()) {
|
if (!setIptables()) {
|
||||||
s_logger.warn("set xenserver Iptable failed");
|
s_logger.warn("set xenserver Iptable failed");
|
||||||
}
|
}
|
||||||
@ -6639,6 +6647,7 @@ public abstract class CitrixResourceBase implements StoragePoolResource, ServerR
|
|||||||
// the resource first connects to XenServer. These UUIDs do
|
// the resource first connects to XenServer. These UUIDs do
|
||||||
// not change over time.
|
// not change over time.
|
||||||
protected class XenServerHost {
|
protected class XenServerHost {
|
||||||
|
public String systemvmisouuid;
|
||||||
public String uuid;
|
public String uuid;
|
||||||
public String ip;
|
public String ip;
|
||||||
public String publicNetwork;
|
public String publicNetwork;
|
||||||
|
|||||||
24
patches/xenserver/etc/sysconfig/iptables-domr
Normal file
24
patches/xenserver/etc/sysconfig/iptables-domr
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
*nat
|
||||||
|
:PREROUTING ACCEPT [0:0]
|
||||||
|
:POSTROUTING ACCEPT [0:0]
|
||||||
|
:OUTPUT ACCEPT [0:0]
|
||||||
|
COMMIT
|
||||||
|
*filter
|
||||||
|
:INPUT DROP [0:0]
|
||||||
|
:FORWARD DROP [0:0]
|
||||||
|
:OUTPUT ACCEPT [0:0]
|
||||||
|
-A INPUT -i eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
|
||||||
|
-A INPUT -i eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
|
||||||
|
-A INPUT -i eth2 -m state --state RELATED,ESTABLISHED -j ACCEPT
|
||||||
|
-A INPUT -p icmp -j ACCEPT
|
||||||
|
-A INPUT -i lo -j ACCEPT
|
||||||
|
-A INPUT -i eth0 -p udp -m udp --dport 67 -j ACCEPT
|
||||||
|
-A INPUT -i eth0 -p udp -m udp --dport 53 -j ACCEPT
|
||||||
|
-A INPUT -i eth1 -p tcp -m state --state NEW --dport 3922 -j ACCEPT
|
||||||
|
-A INPUT -i eth0 -p tcp -m state --state NEW --dport 8080 -j ACCEPT
|
||||||
|
-A INPUT -i eth0 -p tcp -m state --state NEW --dport 80 -j ACCEPT
|
||||||
|
-A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
|
||||||
|
-A FORWARD -i eth0 -o eth2 -j ACCEPT
|
||||||
|
-A FORWARD -i eth2 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
|
||||||
|
COMMIT
|
||||||
|
|
||||||
1
patches/xenserver/root/.ssh/authorized_keys
Normal file
1
patches/xenserver/root/.ssh/authorized_keys
Normal file
@ -0,0 +1 @@
|
|||||||
|
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA3VD1tGRDn3stlJvPNXmQZdQCNjqcfY+xlitd5q0n3KYqJ5OBrty3/00XBUdLt31TbQ4dv+GR7uEr+ex7rm0jjmTFKV4rHYPi882CuC5+bkBp5R4k+mpcyKbxb+IoNS9ItbiExQxMiiRQpHvNem0GGnNFO3lElRPwUFs8evTvZu5HcTj4k4RJLJ66jeIGJ3sMAJ03SICGwfEZjrsyeOMwJk7cH8WNeuNzxzoZd9v02eI0lHdK9O5z7FwrxvRBbzsmJ0EwuhbH8pR7WR6kGLTNP9KEwtrnzV1LYWd+rFoSeh6ImExG7fma3Ldydg8CPTQsjvCEQUxiuV1/x5am5VJlUw== root@r-6-TEST
|
||||||
121
patches/xenserver/root/patchsystemvm.sh
Executable file
121
patches/xenserver/root/patchsystemvm.sh
Executable file
@ -0,0 +1,121 @@
|
|||||||
|
#/bin/bash
|
||||||
|
# $Id: patchsystemvm.sh 10800 2010-07-16 13:48:39Z edison $ $HeadURL: svn://svn.lab.vmops.com/repos/branches/2.1.x/java/scripts/vm/hypervisor/xenserver/prepsystemvm.sh $
|
||||||
|
|
||||||
|
#set -x
|
||||||
|
logfile="/var/log/patchsystemvm.log"
|
||||||
|
#
|
||||||
|
# To use existing console proxy .zip-based package file
|
||||||
|
#
|
||||||
|
patch_console_proxy() {
|
||||||
|
local patchfile=$1
|
||||||
|
rm /usr/local/cloud/systemvm -rf
|
||||||
|
mkdir -p /usr/local/cloud/systemvm
|
||||||
|
echo "All" | unzip $patchfile -d /usr/local/cloud/systemvm >$logfile 2>&1
|
||||||
|
find /usr/local/cloud/systemvm/ -name \*.sh | xargs chmod 555
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
consoleproxy_svcs() {
|
||||||
|
chkconfig cloud on
|
||||||
|
chkconfig postinit on
|
||||||
|
chkconfig domr_webserver off
|
||||||
|
chkconfig haproxy off ;
|
||||||
|
chkconfig dnsmasq off
|
||||||
|
chkconfig sshd on
|
||||||
|
chkconfig httpd off
|
||||||
|
chkconfig nfs off
|
||||||
|
chkconfig nfslock off
|
||||||
|
chkconfig rpcbind off
|
||||||
|
chkconfig rpcidmap off
|
||||||
|
cp /etc/sysconfig/iptables-consoleproxy /etc/sysconfig/iptables
|
||||||
|
mkdir -p /var/log/cloud
|
||||||
|
}
|
||||||
|
|
||||||
|
secstorage_svcs() {
|
||||||
|
chkconfig cloud on
|
||||||
|
chkconfig postinit on
|
||||||
|
chkconfig domr_webserver off
|
||||||
|
chkconfig haproxy off ;
|
||||||
|
chkconfig dnsmasq off
|
||||||
|
chkconfig sshd on
|
||||||
|
chkconfig httpd off
|
||||||
|
cp /etc/sysconfig/iptables-secstorage /etc/sysconfig/iptables
|
||||||
|
mkdir -p /var/log/cloud
|
||||||
|
}
|
||||||
|
|
||||||
|
routing_svcs() {
|
||||||
|
chkconfig cloud off
|
||||||
|
chkconfig domr_webserver on ;
|
||||||
|
chkconfig haproxy on ;
|
||||||
|
chkconfig dnsmasq on
|
||||||
|
chkconfig sshd on
|
||||||
|
chkconfig nfs off
|
||||||
|
chkconfig nfslock off
|
||||||
|
chkconfig rpcbind off
|
||||||
|
chkconfig rpcidmap off
|
||||||
|
cp /etc/sysconfig/iptables-domr /etc/sysconfig/iptables
|
||||||
|
}
|
||||||
|
|
||||||
|
CMDLINE=$(cat /proc/cmdline)
|
||||||
|
TYPE="router"
|
||||||
|
|
||||||
|
for i in $CMDLINE
|
||||||
|
do
|
||||||
|
# search for foo=bar pattern and cut out foo
|
||||||
|
KEY=$(echo $i | cut -d= -f1)
|
||||||
|
VALUE=$(echo $i | cut -d= -f2)
|
||||||
|
case $KEY in
|
||||||
|
type)
|
||||||
|
TYPE=$VALUE
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ "$TYPE" == "consoleproxy" ] || [ "$TYPE" == "secstorage" ] && [ -f /media/cdrom/systemvm.zip ]
|
||||||
|
then
|
||||||
|
patch_console_proxy /media/cdrom/systemvm.zip
|
||||||
|
if [ $? -gt 0 ]
|
||||||
|
then
|
||||||
|
printf "Failed to apply patch systemvm\n" >$logfile
|
||||||
|
exit 5
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
#empty known hosts
|
||||||
|
echo "" > /root/.ssh/known_hosts
|
||||||
|
|
||||||
|
if [ "$TYPE" == "router" ]
|
||||||
|
then
|
||||||
|
routing_svcs
|
||||||
|
if [ $? -gt 0 ]
|
||||||
|
then
|
||||||
|
printf "Failed to execute routing_svcs\n" >$logfile
|
||||||
|
exit 6
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
if [ "$TYPE" == "consoleproxy" ]
|
||||||
|
then
|
||||||
|
consoleproxy_svcs
|
||||||
|
if [ $? -gt 0 ]
|
||||||
|
then
|
||||||
|
printf "Failed to execute consoleproxy_svcs\n" >$logfile
|
||||||
|
exit 7
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$TYPE" == "secstorage" ]
|
||||||
|
then
|
||||||
|
secstorage_svcs
|
||||||
|
if [ $? -gt 0 ]
|
||||||
|
then
|
||||||
|
printf "Failed to execute secstorage_svcs\n" >$logfile
|
||||||
|
exit 8
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
exit $?
|
||||||
27
scripts/vm/hypervisor/xenserver/id_rsa.cloud
Normal file
27
scripts/vm/hypervisor/xenserver/id_rsa.cloud
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
-----BEGIN RSA PRIVATE KEY-----
|
||||||
|
MIIEogIBAAKCAQEA3VD1tGRDn3stlJvPNXmQZdQCNjqcfY+xlitd5q0n3KYqJ5OB
|
||||||
|
rty3/00XBUdLt31TbQ4dv+GR7uEr+ex7rm0jjmTFKV4rHYPi882CuC5+bkBp5R4k
|
||||||
|
+mpcyKbxb+IoNS9ItbiExQxMiiRQpHvNem0GGnNFO3lElRPwUFs8evTvZu5HcTj4
|
||||||
|
k4RJLJ66jeIGJ3sMAJ03SICGwfEZjrsyeOMwJk7cH8WNeuNzxzoZd9v02eI0lHdK
|
||||||
|
9O5z7FwrxvRBbzsmJ0EwuhbH8pR7WR6kGLTNP9KEwtrnzV1LYWd+rFoSeh6ImExG
|
||||||
|
7fma3Ldydg8CPTQsjvCEQUxiuV1/x5am5VJlUwIBIwKCAQEA0KtrUk/n/MSYsLAp
|
||||||
|
xLRyNB+qUGMl1Xjao4f5cxhKJ8/emlfgrC8xI+mZXL+QiG7ZoVZz0ixzprcMNMkG
|
||||||
|
5kmlLnxE3dxxy18Xz+2nIq9+hTVrKHuB82uZT3jVAxcP96GcU5C3snlPeu8KNK8+
|
||||||
|
FFgqU3P/cpbo5FSgwMsNI3k5fkyffYtmBdtjZhWXJqnA9+bMdCmYEKyQFWp18LvV
|
||||||
|
pjGx1jLFZTx9+aDz7gdIk21zbVXmwQmnS1fVKJEByTMvokpvdJUvDedvpgqGqX/g
|
||||||
|
IXkTXe49pYhYwxVguLK6FXyQBwOuUsnur2A79T3wBvzEMozkYLkEG/zcw0fyo3iC
|
||||||
|
fdzc6wKBgQD2gq+kUc2r/+xE+smIej2ICvFZZlSh1ko2tVmVUHuuuMCuBt054Dq9
|
||||||
|
mf8/yIbXSvVtuBMJ+jewVnKfhucEQKf6E1jBdQShezlomFLOQ8cFQJhT6tAwJl/k
|
||||||
|
TR+OjeTuOcBknkE8nstNt7hAkZxY6h/Lu54OM9AkXyZ9skx7gHh+IwKBgQDl1f09
|
||||||
|
YkoM9rqXM8lMKjF0z81T4ACCaFUA6ZKjSZelyG+azJDlRFNWX1In3Kq6aInpZPzs
|
||||||
|
owwIS9tjkXIaLR1wDJ+K8IGJQ19sqCzv3/kBCDXA6mqXkkPR80xRi4wuZ3lETOdL
|
||||||
|
OBXPffuQaKxk32esqsxK6As1LgH4+048JS23EQKBgQCpCSf7pc7cV7f0yTm8q5fo
|
||||||
|
QgSVEvg0da87dQo6gFTPlKFhY8rl25X+WvgrvLQ726D6x12DLzwhJVXpu5cY2+Dl
|
||||||
|
/qNC0+XrEqsF5MsRGIh4oVKCr6SzTYOVPDLlaJz7IElpkRbKe4QYCPNfecpLmTpf
|
||||||
|
0Rvse0zlvZa8l4Tm+QIqmwKBgBOzQZeMFPnMAV1q1r1is8gvEZl5maTHHTqXrXu1
|
||||||
|
2cxhoyqGkBOmxVCL09eH8WBvXEc0irUyjAC2C32QH7kZz1K/QOAF/Hl6zao6TP6e
|
||||||
|
K0k7N861AdJ6QFPTBoqlj6w0wUBeXPfRm3gvXrSbQfoEhTqvjdqI6wSO6jnpp57B
|
||||||
|
W7CbAoGABFHMVXEyT3SliMSRtiCuDOrtl9E/aiOByPulXolqth5WDSel31Lz+iY7
|
||||||
|
ldOLNQO/oononTStdd0fDGChl3WXBSOToJJ/HjIWH05bDY9n2EDAyZvmaW9rX3JQ
|
||||||
|
pH9c/1vlD9lxDEBvq4JXmTtdL0Ho00F5vVHnWnwINtfx6c5BIjg=
|
||||||
|
-----END RSA PRIVATE KEY-----
|
||||||
@ -18,9 +18,12 @@ nfs.py=/opt/xensource/sm
|
|||||||
patch.tgz=..,0775,/opt/xensource/bin
|
patch.tgz=..,0775,/opt/xensource/bin
|
||||||
vmops=..,0755,/etc/xapi.d/plugins
|
vmops=..,0755,/etc/xapi.d/plugins
|
||||||
vmopsSnapshot=..,0755,/etc/xapi.d/plugins
|
vmopsSnapshot=..,0755,/etc/xapi.d/plugins
|
||||||
systemvm-premium.zip=../../../../../vms,0755,/opt/xensource/bin
|
|
||||||
hostvmstats.py=..,0755,/opt/xensource/sm
|
|
||||||
xs_cleanup.sh=..,0755,/opt/xensource/bin
|
xs_cleanup.sh=..,0755,/opt/xensource/bin
|
||||||
|
systemvm-premium.iso=../../../../../vms,0644,/opt/xensource/packages/iso
|
||||||
|
systemvm.iso=../../../../../vms,0644,/opt/xensource/packages/iso
|
||||||
|
hostvmstats.py=..,0755,/opt/xensource/sm
|
||||||
|
id_rsa.cloud=..,0600,/opt/xensource/bin
|
||||||
|
id_rsa.cloud=..,0600,/root/.ssh
|
||||||
network_info.sh=..,0755,/opt/xensource/bin
|
network_info.sh=..,0755,/opt/xensource/bin
|
||||||
prepsystemvm.sh=..,0755,/opt/xensource/bin
|
prepsystemvm.sh=..,0755,/opt/xensource/bin
|
||||||
setupxenserver.sh=..,0755,/opt/xensource/bin
|
setupxenserver.sh=..,0755,/opt/xensource/bin
|
||||||
|
|||||||
@ -154,6 +154,7 @@ public class AlertManagerImpl implements AlertManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
_emailAlert = new EmailAlert(emailAddresses, smtpHost, smtpPort, useAuth, smtpUsername, smtpPassword, emailSender, smtpDebug);
|
_emailAlert = new EmailAlert(emailAddresses, smtpHost, smtpPort, useAuth, smtpUsername, smtpPassword, emailSender, smtpDebug);
|
||||||
|
_emailAlert = null;
|
||||||
|
|
||||||
String storageCapacityThreshold = configs.get("storage.capacity.threshold");
|
String storageCapacityThreshold = configs.get("storage.capacity.threshold");
|
||||||
String cpuCapacityThreshold = configs.get("cpu.capacity.threshold");
|
String cpuCapacityThreshold = configs.get("cpu.capacity.threshold");
|
||||||
|
|||||||
@ -52,6 +52,7 @@ import com.cloud.host.Status;
|
|||||||
import com.cloud.host.dao.HostDao;
|
import com.cloud.host.dao.HostDao;
|
||||||
import com.cloud.hypervisor.xen.resource.CitrixResourceBase;
|
import com.cloud.hypervisor.xen.resource.CitrixResourceBase;
|
||||||
import com.cloud.hypervisor.xen.resource.XcpServerResource;
|
import com.cloud.hypervisor.xen.resource.XcpServerResource;
|
||||||
|
import com.cloud.hypervisor.xen.resource.XenServerResource;
|
||||||
import com.cloud.hypervisor.xen.resource.XenServerConnectionPool;
|
import com.cloud.hypervisor.xen.resource.XenServerConnectionPool;
|
||||||
import com.cloud.resource.Discoverer;
|
import com.cloud.resource.Discoverer;
|
||||||
import com.cloud.resource.DiscovererBase;
|
import com.cloud.resource.DiscovererBase;
|
||||||
@ -382,10 +383,10 @@ public class XcpServerDiscoverer extends DiscovererBase implements Discoverer, L
|
|||||||
if(prodBrand.equals("XenCloudPlatform") && prodVersion.equals("0.1.1"))
|
if(prodBrand.equals("XenCloudPlatform") && prodVersion.equals("0.1.1"))
|
||||||
return new XcpServerResource();
|
return new XcpServerResource();
|
||||||
|
|
||||||
// if(prodBrand.equals("XenServer") && prodVersion.equals("5.6.0"))
|
if(prodBrand.equals("XenServer") && prodVersion.equals("5.6.0"))
|
||||||
// return new XenServerResource();
|
return new XenServerResource();
|
||||||
|
|
||||||
String msg = "Only support XCP 0.1.1 and Xerver 5.6.0, but this one is " + prodBrand + " " + prodVersion;
|
String msg = "Only support XCP 0.1.1 and XenServer 5.6.0, but this one is " + prodBrand + " " + prodVersion;
|
||||||
_alertMgr.sendAlert(AlertManager.ALERT_TYPE_HOST, dcId, podId, msg, msg);
|
_alertMgr.sendAlert(AlertManager.ALERT_TYPE_HOST, dcId, podId, msg, msg);
|
||||||
s_logger.debug(msg);
|
s_logger.debug(msg);
|
||||||
throw new RuntimeException(msg);
|
throw new RuntimeException(msg);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user