Skip to content

Instantly share code, notes, and snippets.

@ralvares
Last active December 12, 2020 00:20
Show Gist options
  • Select an option

  • Save ralvares/a2cfb910cfb4adca73ce60a8398a55f4 to your computer and use it in GitHub Desktop.

Select an option

Save ralvares/a2cfb910cfb4adca73ce60a8398a55f4 to your computer and use it in GitHub Desktop.

Revisions

  1. ralvares revised this gist Mar 30, 2020. No changes.
  2. ralvares revised this gist Mar 30, 2020. 2 changed files with 109 additions and 57 deletions.
    57 changes: 0 additions & 57 deletions Openshift 4.2 on VMware using govc
    Original file line number Diff line number Diff line change
    @@ -1,57 +0,0 @@
    curl https://mirror.openshift.com/pub/openshift-v4/dependencies/rhcos/4.2/4.2.0/rhcos-4.2.0-x86_64-vmware.ova -o rhcos-4.2.0-x86_64-vmware.ova

    govc import.ova -name=rhcos-4.2.0-x86_64-vmware ./rhcos-4.2.0-x86_64-vmware.ova


    export GOVC_URL='vsphere.server.local
    export GOVC_USERNAME='admin@vsphere.local'
    export GOVC_PASSWORD='password
    export GOVC_INSECURE=1
    export GOVC_NETWORK='NETWORK'

    Bootstrap node

    bootstrap=$(cat append-bootstrap.ign | base64 -w0)

    govc vm.clone -vm rhcos-4.2.0-x86_64-vmware -annotation=BootstrapNode -c=4 -m=16384 -net <vm_network> -net.address 00:50:56:8c:4c:xx -on=false -folder=ocp4 -datastore-cluster=<datastore-cluster> -pool=Openshift bootstrap001.ocp4.example.com

    govc vm.change -e="guestinfo.ignition.config.data=${bootstrap}" -vm=bootstrap001.ocp4.example.com

    govc vm.power -on=true bootstrap001.ocp4.example.com

    Master Nodes

    master=$(cat master.ign | base64 -w0)

    govc vm.clone -vm rhcos-4.2.0-x86_64-vmware -annotation=MasterNode001 -c=4 -m=16384 -net <vm_network> -net.address 00:50:56:8c:ef:xx -on=false -folder=ocp4 -datastore-cluster=<datastore-cluster> -pool=Openshift master001.ocp4.example.com

    govc vm.clone -vm rhcos-4.2.0-x86_64-vmware -annotation=MasterNode001 -c=4 -m=16384 -net <vm_network> -net.address 00:50:56:8c:4e:xx -on=false -folder=ocp4 -datastore-cluster=<datastore-cluster> -pool=Openshift master002.ocp4.example.com

    govc vm.clone -vm rhcos-4.2.0-x86_64-vmware -annotation=MasterNode001 -c=4 -m=16384 -net <vm_network> -net.address 00:50:56:8c:a0:xx -on=false -folder=ocp4 -datastore-cluster=<datastore-cluster> -pool=Openshift master003.ocp4.example.com

    govc vm.change -e="guestinfo.ignition.config.data=${master}" -vm=master001.ocp4.example.com
    govc vm.change -e="guestinfo.ignition.config.data=${master}" -vm=master002.ocp4.example.com
    govc vm.change -e="guestinfo.ignition.config.data=${master}" -vm=master003.ocp4.example.com

    govc vm.power -on=true master001.ocp4.example.com
    govc vm.power -on=true master002.ocp4.example.com
    govc vm.power -on=true master003.ocp4.example.com


    Worker Nodes

    worker=$(cat worker.ign | base64 -w0)

    govc vm.clone -vm rhcos-4.2.0-x86_64-vmware -annotation=WorkerNode001 -c=4 -m=16384 -net <vm_network> -net.address 00:50:56:8c:ef:xx -on=false -folder=ocp4 -datastore-cluster=<datastore-cluster> -pool=Openshift worker001.ocp4.example.com

    govc vm.clone -vm rhcos-4.2.0-x86_64-vmware -annotation=WorkerNode001 -c=4 -m=16384 -net <vm_network> -net.address 00:50:56:8c:4e:xx -on=false -folder=ocp4 -datastore-cluster=<datastore-cluster> -pool=Openshift worker002.ocp4.example.com

    govc vm.clone -vm rhcos-4.2.0-x86_64-vmware -annotation=WorkerNode001 -c=4 -m=16384 -net <vm_network> -net.address 00:50:56:8c:a0:xx -on=false -folder=ocp4 -datastore-cluster=<datastore-cluster> -pool=Openshift worker003.ocp4.example.com

    govc vm.change -e="guestinfo.ignition.config.data=${worker}" -vm=worker001.ocp4.example.com
    govc vm.change -e="guestinfo.ignition.config.data=${worker}" -vm=worker002.ocp4.example.com
    govc vm.change -e="guestinfo.ignition.config.data=${worker}" -vm=worker003.ocp4.example.com

    govc vm.power -on=true worker001.ocp4.example.com
    govc vm.power -on=true worker002.ocp4.example.com
    govc vm.power -on=true worker003.ocp4.example.com
    109 changes: 109 additions & 0 deletions Openshift 4.3 on VMware using govc
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,109 @@

    #############################################################
    # Run this script from the same location of the ign files #
    #############################################################

    ########################## Installing govc #################################################
    # mkdir $HOME/bin
    # cd $HOME/bin
    # wget https:////github.com/vmware/govmomi/releases/download/v0.22.1/govc_linux_amd64.gz
    # gunzip govc_linux_amd64.gz && mv govc_linux_amd64 govc && chmod +x govc
    ############################################################################################

    ########################
    # Using govc to deploy #
    # 1x Bootstrap #
    # 3x Masters #
    # 3x Workers #
    ########################

    ######VARIABLES#####

    export GOVC_URL='10.31.xx.xx'
    export GOVC_USERNAME='xxxxx@vsphere.local'
    export GOVC_PASSWORD='xxxxx'
    export GOVC_INSECURE=1

    CLUSTER_NAME="openshift"
    CLUSTER_DOMAIN="ocp.lab"
    RHCOS_TEMPLATE="rhcos-4.3.8"

    VM_NETWORK="AMS_SHARED_SERVICES_OAM_2508"
    VM_DATASTORE="OpenShift_SAS_n01"
    VM_DATACENTER="Openshift-DC"
    VM_FOLDER="openshift"

    BOOTSTRAP_MAC='00:50:56:23:F7:21'
    BOOTSTRAP_NAME='bootstrap'

    MASTER0_MAC='00:50:56:1E:A5:6A'
    MASTER0_NAME='master0'

    MASTER1_MAC='00:50:56:1E:33:25'
    MASTER1_NAME='master1'

    MASTER2_MAC='00:50:56:0C:F8:E0'
    MASTER2_NAME='master2'

    WORKER0_MAC='00:50:56:1E:2C:5D'
    WORKER0_NAME='worker0'

    WORKER1_MAC='00:50:56:24:CD:19'
    WORKER1_NAME='worker1'

    WORKER2_MAC='00:50:56:24:CD:19'
    WORKER2_NAME='worker2'


    echo -e "\e[1;32m Set disk.EnableUUID to true for the template ${RHCOS_TEMPLATE} \e[0m"
    govc vm.change -e="disk.enableUUID=1" -vm="/${VM_DATACENTER}/vm/${RHCOS_TEMPLATE}"

    echo -e "\e[1;32m Set ign.data for the template ${RHCOS_TEMPLATE} \e[0m"
    govc vm.change -e="guestinfo.ignition.config.data=changeme" -vm="/${VM_DATACENTER}/vm/${RHCOS_TEMPLATE}"

    echo -e "\e[1;32m Set Ign.data.encoding for the template ${RHCOS_TEMPLATE} \e[0m"
    govc vm.change -e="guestinfo.ignition.config.data.encoding=base64" -vm="/${VM_DATACENTER}/vm/${RHCOS_TEMPLATE}"

    echo -e "\e[1;32m Deploying - Bootstrap node \e[0m"
    bootstrap=$(cat append-bootstrap.ign | base64 -w0)
    govc vm.clone -vm ${RHCOS_TEMPLATE} -annotation=BootstrapNode -c=4 -m=16384 -net ${VM_NETWORK} -net.address ${BOOTSTRAP_MAC} -on=false -folder=${VM_FOLDER} -ds=${VM_DATASTORE} ${BOOTSTRAP_NAME}.${CLUSTER_NAME}.${CLUSTER_DOMAIN}
    govc vm.change -e="guestinfo.ignition.config.data=${bootstrap}" -vm=${BOOTSTRAP_NAME}.${CLUSTER_NAME}.${CLUSTER_DOMAIN}

    echo -e "\e[1;32m Deploying - ${MASTER0_NAME} node \e[0m"
    master=$(cat master.ign | base64 -w0)
    govc vm.clone -vm ${RHCOS_TEMPLATE} -annotation=MasterNode00 -c=4 -m=16384 -net ${VM_NETWORK} -net.address ${MASTER0_MAC} -on=false -folder=${VM_FOLDER} -ds=${VM_DATASTORE} ${MASTER0_NAME}.${CLUSTER_NAME}.${CLUSTER_DOMAIN}
    govc vm.change -e="guestinfo.ignition.config.data=${master}" -vm=${MASTER0_NAME}.${CLUSTER_NAME}.${CLUSTER_DOMAIN}

    echo -e "\e[1;32m Deploying - ${MASTER1_NAME} node \e[0m"
    master=$(cat master.ign | base64 -w0)
    govc vm.clone -vm ${RHCOS_TEMPLATE} -annotation=MasterNode01 -c=4 -m=16384 -net ${VM_NETWORK} -net.address ${MASTER1_MAC} -on=false -folder=${VM_FOLDER} -ds=${VM_DATASTORE} ${MASTER1_NAME}.${CLUSTER_NAME}.${CLUSTER_DOMAIN}
    govc vm.change -e="guestinfo.ignition.config.data=${master}" -vm=${MASTER1_NAME}.${CLUSTER_NAME}.${CLUSTER_DOMAIN}

    echo -e "\e[1;32m Deploying - ${MASTER2_NAME} node \e[0m"
    master=$(cat master.ign | base64 -w0)
    govc vm.clone -vm ${RHCOS_TEMPLATE} -annotation=MasterNode02 -c=4 -m=16384 -net ${VM_NETWORK} -net.address ${MASTER2_MAC} -on=false -folder=${VM_FOLDER} -ds=${VM_DATASTORE} ${MASTER2_NAME}.${CLUSTER_NAME}.${CLUSTER_DOMAIN}
    govc vm.change -e="guestinfo.ignition.config.data=${master}" -vm=${MASTER2_NAME}.${CLUSTER_NAME}.${CLUSTER_DOMAIN}

    echo -e "\e[1;32m Deploying - ${WORKER0_NAME} node \e[0m"
    worker=$(cat worker.ign | base64 -w0)
    govc vm.clone -vm ${RHCOS_TEMPLATE} -annotation=WorkerNode00 -c=4 -m=16384 -net ${VM_NETWORK} -net.address ${WORKER0_MAC} -on=false -folder=${VM_FOLDER} -ds=${VM_DATASTORE} ${WORKER0_NAME}.${CLUSTER_NAME}.${CLUSTER_DOMAIN}
    govc vm.change -e="guestinfo.ignition.config.data=${worker}" -vm=${WORKER0_NAME}.${CLUSTER_NAME}.${CLUSTER_DOMAIN}

    echo -e "\e[1;32m Deploying - ${WORKER1_NAME} node \e[0m"
    worker=$(cat worker.ign | base64 -w0)
    govc vm.clone -vm ${RHCOS_TEMPLATE} -annotation=WorkerNode01 -c=4 -m=16384 -net ${VM_NETWORK} -net.address ${WORKER1_MAC} -on=false -folder=${VM_FOLDER} -ds=${VM_DATASTORE} ${WORKER1_NAME}.${CLUSTER_NAME}.${CLUSTER_DOMAIN}
    govc vm.change -e="guestinfo.ignition.config.data=${worker}" -vm=${WORKER1_NAME}.${CLUSTER_NAME}.${CLUSTER_DOMAIN}

    echo -e "\e[1;32m Deploying - ${WORKER2_NAME} node \e[0m"
    worker=$(cat worker.ign | base64 -w0)
    govc vm.clone -vm ${RHCOS_TEMPLATE} -annotation=WorkerNode02 -c=4 -m=16384 -net ${VM_NETWORK} -net.address ${WORKER2_MAC} -on=false -folder=${VM_FOLDER} -ds=${VM_DATASTORE} ${WORKER2_NAME}.${CLUSTER_NAME}.${CLUSTER_DOMAIN}
    govc vm.change -e="guestinfo.ignition.config.data=${worker}" -vm=${WORKER2_NAME}.${CLUSTER_NAME}.${CLUSTER_DOMAIN}

    echo -e "\e[1;32m Powering ON Nodes \e[0m"
    govc vm.power -on=true ${BOOTSTRAP_NAME}.${CLUSTER_NAME}.${CLUSTER_DOMAIN}
    govc vm.power -on=true ${MASTER0_NAME}.${CLUSTER_NAME}.${CLUSTER_DOMAIN}
    govc vm.power -on=true ${MASTER1_NAME}.${CLUSTER_NAME}.${CLUSTER_DOMAIN}
    govc vm.power -on=true ${MASTER2_NAME}.${CLUSTER_NAME}.${CLUSTER_DOMAIN}
    govc vm.power -on=true ${WORKER0_NAME}.${CLUSTER_NAME}.${CLUSTER_DOMAIN}
    govc vm.power -on=true ${WORKER1_NAME}.${CLUSTER_NAME}.${CLUSTER_DOMAIN}
    govc vm.power -on=true ${WORKER2_NAME}.${CLUSTER_NAME}.${CLUSTER_DOMAIN}
  3. ralvares revised this gist Nov 21, 2019. No changes.
  4. ralvares renamed this gist Nov 21, 2019. 1 changed file with 0 additions and 0 deletions.
  5. ralvares revised this gist Nov 21, 2019. 1 changed file with 8 additions and 8 deletions.
    16 changes: 8 additions & 8 deletions Vmware automation using govc
    Original file line number Diff line number Diff line change
    @@ -21,17 +21,17 @@ govc vm.power -on=true bootstrap001.ocp4.example.com

    Master Nodes

    data=$(cat master.ign | base64 -w0)
    master=$(cat master.ign | base64 -w0)

    govc vm.clone -vm rhcos-4.2.0-x86_64-vmware -annotation=MasterNode001 -c=4 -m=16384 -net <vm_network> -net.address 00:50:56:8c:ef:xx -on=false -folder=ocp4 -datastore-cluster=<datastore-cluster> -pool=Openshift master001.ocp4.example.com

    govc vm.clone -vm rhcos-4.2.0-x86_64-vmware -annotation=MasterNode001 -c=4 -m=16384 -net <vm_network> -net.address 00:50:56:8c:4e:xx -on=false -folder=ocp4 -datastore-cluster=<datastore-cluster> -pool=Openshift master002.ocp4.example.com

    govc vm.clone -vm rhcos-4.2.0-x86_64-vmware -annotation=MasterNode001 -c=4 -m=16384 -net <vm_network> -net.address 00:50:56:8c:a0:xx -on=false -folder=ocp4 -datastore-cluster=<datastore-cluster> -pool=Openshift master003.ocp4.example.com

    govc vm.change -e="guestinfo.ignition.config.data=${data}" -vm=master001.ocp4.example.com
    govc vm.change -e="guestinfo.ignition.config.data=${data}" -vm=master002.ocp4.example.com
    govc vm.change -e="guestinfo.ignition.config.data=${data}" -vm=master003.ocp4.example.com
    govc vm.change -e="guestinfo.ignition.config.data=${master}" -vm=master001.ocp4.example.com
    govc vm.change -e="guestinfo.ignition.config.data=${master}" -vm=master002.ocp4.example.com
    govc vm.change -e="guestinfo.ignition.config.data=${master}" -vm=master003.ocp4.example.com

    govc vm.power -on=true master001.ocp4.example.com
    govc vm.power -on=true master002.ocp4.example.com
    @@ -40,17 +40,17 @@ govc vm.power -on=true master003.ocp4.example.com

    Worker Nodes

    data=$(cat master.ign | base64 -w0)
    worker=$(cat worker.ign | base64 -w0)

    govc vm.clone -vm rhcos-4.2.0-x86_64-vmware -annotation=WorkerNode001 -c=4 -m=16384 -net <vm_network> -net.address 00:50:56:8c:ef:xx -on=false -folder=ocp4 -datastore-cluster=<datastore-cluster> -pool=Openshift worker001.ocp4.example.com

    govc vm.clone -vm rhcos-4.2.0-x86_64-vmware -annotation=WorkerNode001 -c=4 -m=16384 -net <vm_network> -net.address 00:50:56:8c:4e:xx -on=false -folder=ocp4 -datastore-cluster=<datastore-cluster> -pool=Openshift worker002.ocp4.example.com

    govc vm.clone -vm rhcos-4.2.0-x86_64-vmware -annotation=WorkerNode001 -c=4 -m=16384 -net <vm_network> -net.address 00:50:56:8c:a0:xx -on=false -folder=ocp4 -datastore-cluster=<datastore-cluster> -pool=Openshift worker003.ocp4.example.com

    govc vm.change -e="guestinfo.ignition.config.data=${data}" -vm=worker001.ocp4.example.com
    govc vm.change -e="guestinfo.ignition.config.data=${data}" -vm=worker002.ocp4.example.com
    govc vm.change -e="guestinfo.ignition.config.data=${data}" -vm=worker003.ocp4.example.com
    govc vm.change -e="guestinfo.ignition.config.data=${worker}" -vm=worker001.ocp4.example.com
    govc vm.change -e="guestinfo.ignition.config.data=${worker}" -vm=worker002.ocp4.example.com
    govc vm.change -e="guestinfo.ignition.config.data=${worker}" -vm=worker003.ocp4.example.com

    govc vm.power -on=true worker001.ocp4.example.com
    govc vm.power -on=true worker002.ocp4.example.com
  6. ralvares created this gist Nov 21, 2019.
    57 changes: 57 additions & 0 deletions Vmware automation using govc
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,57 @@
    curl https://mirror.openshift.com/pub/openshift-v4/dependencies/rhcos/4.2/4.2.0/rhcos-4.2.0-x86_64-vmware.ova -o rhcos-4.2.0-x86_64-vmware.ova

    govc import.ova -name=rhcos-4.2.0-x86_64-vmware ./rhcos-4.2.0-x86_64-vmware.ova


    export GOVC_URL='vsphere.server.local
    export GOVC_USERNAME='admin@vsphere.local'
    export GOVC_PASSWORD='password
    export GOVC_INSECURE=1
    export GOVC_NETWORK='NETWORK'

    Bootstrap node

    bootstrap=$(cat append-bootstrap.ign | base64 -w0)

    govc vm.clone -vm rhcos-4.2.0-x86_64-vmware -annotation=BootstrapNode -c=4 -m=16384 -net <vm_network> -net.address 00:50:56:8c:4c:xx -on=false -folder=ocp4 -datastore-cluster=<datastore-cluster> -pool=Openshift bootstrap001.ocp4.example.com

    govc vm.change -e="guestinfo.ignition.config.data=${bootstrap}" -vm=bootstrap001.ocp4.example.com

    govc vm.power -on=true bootstrap001.ocp4.example.com

    Master Nodes

    data=$(cat master.ign | base64 -w0)

    govc vm.clone -vm rhcos-4.2.0-x86_64-vmware -annotation=MasterNode001 -c=4 -m=16384 -net <vm_network> -net.address 00:50:56:8c:ef:xx -on=false -folder=ocp4 -datastore-cluster=<datastore-cluster> -pool=Openshift master001.ocp4.example.com

    govc vm.clone -vm rhcos-4.2.0-x86_64-vmware -annotation=MasterNode001 -c=4 -m=16384 -net <vm_network> -net.address 00:50:56:8c:4e:xx -on=false -folder=ocp4 -datastore-cluster=<datastore-cluster> -pool=Openshift master002.ocp4.example.com

    govc vm.clone -vm rhcos-4.2.0-x86_64-vmware -annotation=MasterNode001 -c=4 -m=16384 -net <vm_network> -net.address 00:50:56:8c:a0:xx -on=false -folder=ocp4 -datastore-cluster=<datastore-cluster> -pool=Openshift master003.ocp4.example.com

    govc vm.change -e="guestinfo.ignition.config.data=${data}" -vm=master001.ocp4.example.com
    govc vm.change -e="guestinfo.ignition.config.data=${data}" -vm=master002.ocp4.example.com
    govc vm.change -e="guestinfo.ignition.config.data=${data}" -vm=master003.ocp4.example.com

    govc vm.power -on=true master001.ocp4.example.com
    govc vm.power -on=true master002.ocp4.example.com
    govc vm.power -on=true master003.ocp4.example.com


    Worker Nodes

    data=$(cat master.ign | base64 -w0)

    govc vm.clone -vm rhcos-4.2.0-x86_64-vmware -annotation=WorkerNode001 -c=4 -m=16384 -net <vm_network> -net.address 00:50:56:8c:ef:xx -on=false -folder=ocp4 -datastore-cluster=<datastore-cluster> -pool=Openshift worker001.ocp4.example.com

    govc vm.clone -vm rhcos-4.2.0-x86_64-vmware -annotation=WorkerNode001 -c=4 -m=16384 -net <vm_network> -net.address 00:50:56:8c:4e:xx -on=false -folder=ocp4 -datastore-cluster=<datastore-cluster> -pool=Openshift worker002.ocp4.example.com

    govc vm.clone -vm rhcos-4.2.0-x86_64-vmware -annotation=WorkerNode001 -c=4 -m=16384 -net <vm_network> -net.address 00:50:56:8c:a0:xx -on=false -folder=ocp4 -datastore-cluster=<datastore-cluster> -pool=Openshift worker003.ocp4.example.com

    govc vm.change -e="guestinfo.ignition.config.data=${data}" -vm=worker001.ocp4.example.com
    govc vm.change -e="guestinfo.ignition.config.data=${data}" -vm=worker002.ocp4.example.com
    govc vm.change -e="guestinfo.ignition.config.data=${data}" -vm=worker003.ocp4.example.com

    govc vm.power -on=true worker001.ocp4.example.com
    govc vm.power -on=true worker002.ocp4.example.com
    govc vm.power -on=true worker003.ocp4.example.com