openstack与cloudify整合的用法
发表于:2025-12-03 作者:千家信息网编辑
千家信息网最后更新 2025年12月03日,本篇内容介绍了"openstack与cloudify整合的用法"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学
千家信息网最后更新 2025年12月03日openstack与cloudify整合的用法
本篇内容介绍了"openstack与cloudify整合的用法"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
1.在openstack的dashboard生成keypairs,并保存keypairs文件(xxx.pem),将pem文件放到
2.修改
3.修改
3.由于cloudify的openstack云驱动还未更新,我在github下载一个老外针对openstack的云驱动jar包( cloudify-openstack-driver-1.2.jar ),并放到
4.在cloudify shell下运行bootstarp-cloud openstack
openstack-cloud.groovy
cloud {name = "openstack"configuration {className "org.cloudifysource.esc.driver.provisioning.jclouds.DefaultProvisioningDriver"managementMachineTemplate "SMALL_LINUX"connectToPrivateIp truebootstrapManagementOnPublicIp falsepersistentStoragePath persistencePath}provider {Context provider name.provider "openstack-nova"cloudifyUrl "http://repository.cloudifysource.org/org/cloudifysource/2.5.0-RC/gigaspaces-cloudify-2.5.0-rc-b3993"machineNamePrefix "cloudify-agent-"managementOnlyFiles ([])sshLoggingLevel "WARNING"managementGroup "cloudify-manager"numberOfManagementMachines 1reservedMemoryCapacityPerMachineInMB 1024}user {user "${tenant}:${user}"apiKey apiKey}cloudCompute {templates ([SMALL_LINUX : computeTemplate{imageId linuxImageIdremoteDirectory "/home/root/gs-files"machineMemoryMB 1600hardwareId hardwareIdlocalDirectory "upload"keyFile keyFileusername "root"password "123456"options (["securityGroupNames" : [securityGroup]as String[],"keyPairName" : keyPair,"generateKeyPair": false,"autoAssignFloatingIp": true])overrides (["jclouds.endpoint": openstackUrl])// enable sudo.privileged true}])}custom ([:])}openstack-cloud.properties
user="admin"//password="keystoneadmin"tenant="openstackDemo"keyFile="paas.pem"keyPair="paas"securityGroup="default"// For instance: "https://:5000/v2.0/"openstackUrl="http://10.10.4.47:5000/v2.0/"apiKey="keystoneadmin"hardwareId="RegionOne/2"//linuxImageId="RegionOne/dd9171e4-0941-412a-8067-5d2528ed303c"linuxImageId="RegionOne/283693e1-b288-4f3f-bca4-d6513f942e99"persistencePath=null
bootstrap-management.sh
#! /bin/bash############################################################################## This script starts a Gigaspaces agent for use with the Gigaspaces# Cloudify. The agent will function as management depending on the value of $GSA_MODE## Parameters the should be exported beforehand:# $LUS_IP_ADDRESS - Ip of the head node that runs a LUS and ESM. May be my IP. (Required)# $GSA_MODE - 'agent' if this node should join an already running node. Otherwise, any value.# $NO_WEB_SERVICES - 'true' if web-services (rest, webui) should not be deployed (only if GSA_MODE != 'agent')# $MACHINE_IP_ADDRESS - The IP of this server (Useful if multiple NICs exist)# $WORKING_HOME_DIRECTORY - This is where the files were copied to (cloudify installation, etc..)# $GIGASPACES_LINK - If this url is found, it will be downloaded to $WORKING_HOME_DIRECTORY/gigaspaces.zip# $GIGASPACES_OVERRIDES_LINK - If this url is found, it will be downloaded and unzipped into the same location as cloudify# $CLOUD_FILE - Location of the cloud configuration file. Only available in bootstrap of management machines.# $NO_WEB_SERVICES - If set to 'true', indicates that the rest and web-ui services should not be deployed in this machine.# $GIGASPACES_CLOUD_IMAGE_ID - If set, indicates the image ID for this machine.# $GIGASPACES_CLOUD_HARDWARE_ID - If set, indicates the hardware ID for this machine.# $PASSWORD - the machine password# $STORAGE_VOLUME_ATTACHED - if set to 'true', storage volume will be mouted. else all storage params will be null.# $STORAGE_FORMAT_TYPE - if set, indicates the file system type for formatting the volume before mount.# $STORAGE_MOUNT_PATH - if set, points to the path where the storage driver will be mounted.# $STORAGE_DEVICE_NAME - if set, indicated the storage device name.############################################################################## args:# $1 the error code of the last command (should be explicitly passed)# $2 the message to print in case of an error# # an error message is printed and the script exists with the provided error codefunction error_exit { echo "$2 : error code: $1" exit ${1}}# args:# $1 the error code of the last command (should be explicitly passed)# $2 the message to print in case of an error # $3 the threshold to exit on## if (last_error_code [$1]) >= (threshold [$3]) the provided message[$2] is printed and the script# exists with the provided error code ($1)function error_exit_on_level { if [ ${1} -ge ${3} ]; then error_exit ${1} ${2} fi}echo Checking script pathSCRIPT=`readlink -f $0`SCRIPTPATH=`dirname $SCRIPT`echo script path is $SCRIPTPATHif [ -f ${SCRIPTPATH}/cloudify_env.sh ]; then ENV_FILE_PATH=${SCRIPTPATH}/cloudify_env.shelse if [ -f ${SCRIPTPATH}/../cloudify_env.sh ]; then ENV_FILE_PATH=${SCRIPTPATH}/../cloudify_env.sh else echo Cloudify environment file not found! Bootstrapping cannot proceed! exit 105 fifisource ${ENV_FILE_PATH}if [ "$STORAGE_VOLUME_ATTACHED" = "true" ]; then echo Formatting storage volume with fs type ${STORAGE_FORMAT_TYPE} and device name ${STORAGE_DEVICE_NAME} sudo mkfs -t $STORAGE_FORMAT_TYPE $STORAGE_DEVICE_NAME || error_exit $? "Failed formatting storage volume" echo Mounting storage volume on path ${STORAGE_MOUNT_PATH} mkdir -p ~/$STORAGE_MOUNT_PATH sudo mount $STORAGE_DEVICE_NAME ~/$STORAGE_MOUNT_PATH || error_exit $? "Failed mounting storage volume" USERNAME=`whoami` sudo chown $USERNAME storage/ fiJAVA_32_URL="http://repository.cloudifysource.org/com/oracle/java/1.6.0_32/jdk-6u32-linux-i586.bin"#JAVA_32_URL="http://10.10.4.12:8080/GG/jdk-6u43-linux-i586.bin"JAVA_64_URL="http://repository.cloudifysource.org/com/oracle/java/1.6.0_32/jdk-6u32-linux-x64.bin"# If not JDK specified, determine which JDK to install based on hardware architectureif [ -z "$GIGASPACES_AGENT_ENV_JAVA_URL" ]; then ARCH=`uname -m` echo Machine Architecture -- $ARCH if [ "$ARCH" = "i686" ]; then export GIGASPACES_AGENT_ENV_JAVA_URL=$JAVA_32_URL elif [ "$ARCH" = "x86_64" ]; then export GIGASPACES_AGENT_ENV_JAVA_URL=$JAVA_64_URL else echo Unknown architecture -- $ARCH -- defaulting to 32 bit JDK export GIGASPACES_AGENT_ENV_JAVA_URL=$JAVA_32_URL fi fi if [ "$GIGASPACES_AGENT_ENV_JAVA_URL" = "NO_INSTALL" ]; then echo "JDK will not be installed"else echo Previous JAVA_HOME value -- $JAVA_HOME export GIGASPACES_ORIGINAL_JAVA_HOME=$JAVA_HOME yum install wget -y echo Downloading JDK from $GIGASPACES_AGENT_ENV_JAVA_URL wget -4 -q -O $WORKING_HOME_DIRECTORY/java.bin $GIGASPACES_AGENT_ENV_JAVA_URL || error_exit $? "Failed downloading Java installation from $GIGASPACES_AGENT_ENV_JAVA_URL" #scp $GIGASPACES_AGENT_ENV_JAVA_URL root@192.168.100.4:$WORKING_HOME_DIRECTORY/java.bin || error_exit $? "Failed downloading Java installation from $GIGASPACES_AGENT_ENV_JAVA_URL" chmod +x $WORKING_HOME_DIRECTORY/java.bin echo -e "\n" > $WORKING_HOME_DIRECTORY/input.txt rm -rf ~/java || error_exit $? "Failed removing old java installation directory" mkdir ~/java cd ~/java echo Installing JDK $WORKING_HOME_DIRECTORY/java.bin < $WORKING_HOME_DIRECTORY/input.txt > /dev/null mv ~/java/*/* ~/java || error_exit $? "Failed moving JDK installation" rm -f $WORKING_HOME_DIRECTORY/input.txt export JAVA_HOME=~/javafi export EXT_JAVA_OPTIONS="-Dcom.gs.multicast.enabled=false"if [ ! -z "$GIGASPACES_LINK" ]; then echo Downloading cloudify installation from $GIGASPACES_LINK.tar.gz wget -q $GIGASPACES_LINK.tar.gz -O $WORKING_HOME_DIRECTORY/gigaspaces.tar.gz || error_exit $? "Failed downloading cloudify installation"fiif [ ! -z "$GIGASPACES_OVERRIDES_LINK" ]; then echo Downloading cloudify overrides from $GIGASPACES_OVERRIDES_LINK.tar.gz wget -q $GIGASPACES_OVERRIDES_LINK.tar.gz -O $WORKING_HOME_DIRECTORY/gigaspaces_overrides.tar.gz || error_exit $? "Failed downloading cloudify overrides"fi# Todo: Check this conditionif [ ! -d "~/gigaspaces" -o $WORKING_HOME_DIRECTORY/gigaspaces.tar.gz -nt ~/gigaspaces ]; then rm -rf ~/gigaspaces || error_exit $? "Failed removing old gigaspaces directory" mkdir ~/gigaspaces || error_exit $? "Failed creating gigaspaces directory" # 2 is the error level threshold. 1 means only warnings # this is needed for testing purposes on zip files created on the windows platform tar xfz $WORKING_HOME_DIRECTORY/gigaspaces.tar.gz -C ~/gigaspaces || error_exit_on_level $? "Failed extracting cloudify installation" 2 # Todo: consider removing this line chmod -R 777 ~/gigaspaces || error_exit $? "Failed changing permissions in cloudify installion" mv ~/gigaspaces/*/* ~/gigaspaces || error_exit $? "Failed moving cloudify installation" if [ ! -z "$GIGASPACES_OVERRIDES_LINK" ]; then echo Copying overrides into cloudify distribution tar xfz $WORKING_HOME_DIRECTORY/gigaspaces_overrides.tar.gz -C ~/gigaspaces || error_exit_on_level $? "Failed extracting cloudify overrides" 2 fifi# if an overrides directory exists, copy it into the cloudify distributionif [ -d $WORKING_HOME_DIRECTORY/cloudify-overrides ]; then cp -rf $WORKING_HOME_DIRECTORY/cloudify-overrides/* ~/gigaspacesfi# UPDATE SETENV SCRIPT...echo Updating environment scriptcd ~/gigaspaces/bin || error_exit $? "Failed changing directory to bin directory"sed -i "1i source ${ENV_FILE_PATH}" setenv.sh || error_exit $? "Failed updating setenv.sh"sed -i "1i export NIC_ADDR=$MACHINE_IP_ADDRESS" setenv.sh || error_exit $? "Failed updating setenv.sh"sed -i "1i export LOOKUPLOCATORS=$LUS_IP_ADDRESS" setenv.sh || error_exit $? "Failed updating setenv.sh"sed -i "1i export PATH=$JAVA_HOME/bin:$PATH" setenv.sh || error_exit $? "Failed updating setenv.sh"sed -i "1i export JAVA_HOME=$JAVA_HOME" setenv.sh || error_exit $? "Failed updating setenv.sh"# START AGENT ALONE OR WITH MANAGEMENTif [ -f nohup.out ]; then rm nohup.outfiif [ -f nohup.out ]; then error_exit 1 "Failed to remove nohup.out Probably used by another process"fi# Privileged mode handlingif [ "$GIGASPACES_AGENT_ENV_PRIVILEGED" = "true" ]; then # First check if sudo is allowed for current session export GIGASPACES_USER=`whoami` if [ "$GIGASPACES_USER" = "root" ]; then # root is privileged by definition echo Running as root else sudo -n ls > /dev/null || error_exit_on_level $? "Current user is not a sudoer, or requires a password for sudo" 1 fi # now modify sudoers configuration to allow execution without tty grep -i ubuntu /proc/version > /dev/null if [ "$?" -eq "0" ]; then # ubuntu echo Running on Ubuntu if sudo grep -q -E '[^!]requiretty' /etc/sudoers; then echo creating sudoers user file echo "Defaults:`whoami` !requiretty" | sudo tee /etc/sudoers.d/`whoami` >/dev/null sudo chmod 0440 /etc/sudoers.d/`whoami` else echo No requiretty directive found, nothing to do fi else # other - modify sudoers file if [ ! -f "/etc/sudoers" ]; then error_exit 101 "Could not find sudoers file at expected location (/etc/sudoers)" fi echo Setting privileged mode sudo sed -i 's/^Defaults.*requiretty/#&/g' /etc/sudoers || error_exit_on_level $? "Failed to edit sudoers file to disable requiretty directive" 1 fifi# Execute per-template commandif [ ! -z "$GIGASPACES_AGENT_ENV_INIT_COMMAND" ]; then echo Executing initialization command cd $WORKING_HOME_DIRECTORY $GIGASPACES_AGENT_ENV_INIT_COMMANDficd ~/gigaspaces/tools/cli || error_exit $? "Failed changing directory to cli directory"START_COMMAND_ARGS="-timeout 30 --verbose -auto-shutdown"if [ "$GSA_MODE" = "agent" ]; then ERRMSG="Failed starting agent" START_COMMAND="start-agent"else ERRMSG="Failed starting management services" START_COMMAND="start-management" START_COMMAND_ARGS="${START_COMMAND_ARGS} -cloud-file ${CLOUD_FILE}" if [ "$NO_WEB_SERVICES" = "true" ]; then START_COMMAND_ARGS="${START_COMMAND_ARGS} -no-web-services -no-management-space" fifi nohup ./cloudify.sh $START_COMMAND $START_COMMAND_ARGS RETVAL=$?echo cat nohup.outcat nohup.outif [ $RETVAL -ne 0 ]; then error_exit $RETVAL $ERRMSGfiexit 0"openstack与cloudify整合的用法"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!
文件
整合
内容
更多
知识
驱动
实用
学有所成
接下来
命令
困境
实际
情况
文件夹
文章
服务器
案例
编带
网站
老外
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网络安全 通报流程
数据库添加列表框
数据库连接另一个虚拟主机
中国网络安全设备排名
加工网络技术出厂价格
涉及网络安全苹果手机还能用吗
江阴多功能软件开发电子
数据库工程师考试报考时间
ncbi所有数据库简
软件开发也属于实体
守望先锋用什么软件开发
网络安全病毒论文
arcgis注册数据库
杭州学习网络技术的学校
新时期中职网络安全教育路径研究
怎么强制删除sql数据库
怀远天气预报软件开发
域名服务器位置查询
鸿盈网络技术有限公司怎么样
校园网络安全问题与对策
数据库如何改值
北京华为软件开发
软件开发能有多少工资
数据库共享需要多大内存
双路服务器内存占用高
腾讯云服务器8核16g
家庭网络安全预防手抄报
基本农田数据库建设
传奇3服务器卡
镇海一站式软件开发系统