Trillian - flexible monkey powered CI/CD
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
Ansible
DBscripts Updated templated Trillian DB schema. Apr 3, 2017
utils XS74 generalise script. Apr 5, 2018
LICENSE
README.md
todo.md

README.md

Trillian - Build Nested CloudStack Environments

More detailed information can be found in the Wiki

Trillian makes use a 'parent' CloudStack' environment which is used to build virtualised nested environments.

Trillian leverages ESXi's ability to virtualise the VT-x features allowing the creation of VT-x enabled virtualised hosts

Trillian uses Ansible 2 to create environment configuration files and deploy those environments. The user can run 2 commandline statements and go from 0 to a running cloudstack environment with multiple hosts.

as an example:

ansible-playbook generate-cloudconfig.yml --extra-vars 'env_name=trillian-test-env env_comment='\''example nested cloudstack test environment'\''  use_shared_storage=true env_version=cs410 mgmt=1 db=0 hvtype=k  kvm_os=7 hv=2 env_accounts=all pri=2 sec=1 esxi_use_dvswitch=no build_marvin=yes wait_till_setup=yes wait_for_template=yes mgmt_os=7' -i localhost

at the end of this the sugestion, You can now run: ansible-playbook deployvms.yml -i ./hosts_trillian-test-env, is put on the output, which would trigger you to run something like

ansible-playbook deployvms.yml -i ./hosts_trillian-test-env --extra-vars 'env_name=trillian-test-env env_version=cs410'

for more examples see the Wiki

Basic variables:

  • env_name [mandatory]: Environment name, single string, characters, numbers, underscore _ or dash - only.

  • env_version [mandatory]: Environment CloudStack version (cs45, cs46, cs49, custom, etc).

  • mgmt_os [mandatory]: Management server OS (6, 7, u, custom)

  • hvtype [mandatory]: XenServer (x), KVM (k) or VMware (v)

  • pri [mandatory]: number of primary storage pools.

  • hv: number of hypervisors. Please note if hypervisor type is VMware the assumption is made that a single VC host is also required. This does not have to be specified anywhere.

    One of the following three is required depending on the choosen Hypervisor (hvtype):

    • kvm_os:
      • 6 = centos6.8
      • 7 = centos7.1
      • u = ubuntu14.04
    • xs_ver:
      • xs62sp1
      • xs65sp1
    • vmware_ver:
      • 55u3
      • 60u1

    In order to avoid template issues, kvm_os, xs_verand vmware_ver will default to 'custom' when they are not specified.

    If you specify KVM as hypervisor (hvtype=k) you must specify the kvm_os or set it to 'custom' and set the template to use (kvm_template) in the extra vars (kvm_template="Ubuntu Server 14.04")

    The same applies to the other hypervisor types. For custom VMware you would need to specify both the vCenter and ESXi templates

Advanced variables [all optional]:

  • mgmt: Number of management servers to configure (default is 1)
  • sec: number of secondary storage pools. (default is 1)
  • db: Number of database servers to configure (default is 0 - db is on mgmt host)
  • management_network: name of the management network
  • guest_public_network: name of the guest+public network
  • management_vm_hypervisor: parent CloudStack cloud hypervisor (default VMware)
  • build_project: project name to use for the nested cloudstack build (default -NestedClouds)
  • build_zone: parent cloud zone name
  • build_keyboard: keyboard used for nested VMs (default UK)
  • mgmtsrv_service_offering: parent cloud service offering used for the management server build
  • mgmtsrv_template: parent cloud template used for the management server build
  • dbsrv_service_offering: parent cloud service offering used for database server build
  • dbsrv_template: parent cloud template used for database server build
  • kvm_service_offering: parent cloud nested KVM instances service offering
  • kvm_template: parent cloud nested KVM HV template
  • xs_service_offering: parent cloud nested XenServer instances service offering
  • xs_template: parent cloud nested XenServer HV template
  • esxi_service_offering: parent cloud nested ESXi instances service offering
  • esxi_template: parent cloud nested ESXi HV template
  • vc_service_offering: parent cloud nested VC instances service offering
  • vc_template: parent cloud nested VirtualCentre template
  • baseurl_cloudstack: URL for CloudStack build repository
  • env_db_name: environments database name
  • env_db_ip: environments database IP address
  • env_db_user: environments database username
  • env_db_password: environments database password
  • env_zonetype: basic or advanced (default)
  • env_prihost: primary storage host fqdn or IP address
  • env_sechost: secondary storage host fqdn or IP address
  • env_zone_systemplate: URL to system template, overrides version variable
  • build_marvin: whether or not to build a marvin vm for testing purposes (default is false)
  • wait_till_setup: only return once system VMs are running. (default is no)

Some example --extra-args:

  • env_name=ccs-xs-13-patest env_version=cs45 mgmt=1 hvtype=x hv=2 xs_ver=xs65sp1 env_accounts=all pri=1 build_marvin=true mgmt_os=6
  • env_name=cs49-vmw55-pga env_version=cs49 mgmt_os=6 hvtype=v vmware_ver=55u3 hv=2 pri=2 env_accounts=all build_marvin=true wait_till_setup=yes baseurl_cloudstack=http://10.2.0.4/shapeblue/cloudstack/testing/
  • env_name=cs49-kvm6-pga env_version=cs49 mgmt_os=6 env_accounts=all hvtype=k kvm_os=6 hv=2 pri=2 env_accounts=all build_marvin=true wait_till_setup=yes baseurl_cloudstack=http://10.2.0.4/shapeblue/cloudstack/testing/