Exemplo n.º 1
0
CENTOS_KEY = read_local_file("keys/centos")
CENTOS_PUBLIC_KEY = read_local_file("keys/centos_pub")
PROJECT_NAME = read_local_file("project_name")

Centos = basic_cred("centos",
                    CENTOS_KEY,
                    name="Centos",
                    type="KEY",
                    default=True)

Era_Disk = vm_disk_package(
    name="era_disk",
    config={
        # By default image type is set to DISK_IMAGE
        "image": {
            "source":
            "http://download.nutanix.com/era/1.1.1/ERA-Server-build-1.1.1-340d9db1118eac81219bec98507d4982045d8799.qcow2"
        }
    },
)


class AhvVmService(Service):
    """Sample mysql service"""

    ENV = CalmVariable.Simple("DEV")


class AhvVmPackage(Package):
    """Example package with variables, install tasks and link to service"""
Exemplo n.º 2
0
from calm.dsl.builtins import vm_disk_package, AhvVmDisk, AhvVmNic
from calm.dsl.builtins import AhvVmGC, AhvVmResources, AhvVm


# SSH Credentials
CENTOS_USER = "******"
CENTOS_KEY = read_local_file(os.path.join("keys", "centos"))
CENTOS_PUBLIC_KEY = read_local_file(os.path.join("keys", "centos_pub"))
CentosCred = basic_cred(
    CENTOS_USER, CENTOS_KEY, name="Centos", type="KEY", default=True,
)

# OS Image details for VM
CENTOS_IMAGE_SOURCE = "http://download.nutanix.com/calm/CentOS-7-x86_64-1810.qcow2"
CentosPackage = vm_disk_package(
    name="centos_disk", config={"image": {"source": CENTOS_IMAGE_SOURCE}},
)


class HelloService(Service):
    """Sample Service"""

    # Service Variables
    ENV = Variable.WithOptions.Predefined.string(
        ["DEV", "PROD"], default="DEV", is_mandatory=True, runtime=True
    )

    # Service Actions
    @action
    def __create__():
        # Step 1
Exemplo n.º 3
0
from calm.dsl.builtins import Service, Package, Substrate
from calm.dsl.builtins import Deployment, Profile, Blueprint
from calm.dsl.builtins import CalmVariable, CalmTask, action
from calm.dsl.builtins import read_local_file


CENTOS_PASSWORD = read_local_file("password")
CENTOS_KEY = read_local_file("private_key")

DefaultCred = basic_cred("centos", CENTOS_PASSWORD, name="CENTOS")
CentosKeyCred = basic_cred(
    "centos", CENTOS_KEY, name="CENTOS_KEY", type="KEY", default=True
)
Era_Disk = vm_disk_package(
    name="era_disk", config=read_spec("image_configs/era_disk.yaml")
)
Virtio_CdRom = vm_disk_package(
    name="virtio_cdrom", config_file="image_configs/virtio_cdrom.yaml"
)


class MySQLService(Service):
    """Sample mysql service"""

    ENV = CalmVariable.Simple("DEV")


class MySQLPackage(Package):
    """Example package with variables, install tasks and link to service"""
Exemplo n.º 4
0
    """GCP Redis MasterPackage"""

    services = [ref(RedisMaster)]

    @action
    def __install__():
        CalmTask.Exec.ssh(
            name="PackageInstallTask",
            filename="scripts/Master_Package.sh",
            cred=ref(DefaultCred),
        )


# Downloadable images for AHV and VMware
AHV_CENTOS_76 = vm_disk_package(
    name="AHV_CENTOS_76", config_file="specs/image_config/ahv_centos.yaml"
)
ESX_CENTOS_76 = vm_disk_package(
    name="ESX_CENTOS_76", config_file="specs/image_config/vmware_centos.yaml"
)


class AHVRedisMasterSubstrate(Substrate):
    provider_spec = read_ahv_spec(
        "specs/substrate/ahv_spec_centos.yaml", disk_packages={1: AHV_CENTOS_76}
    )
    provider_spec.spec["name"] = "Redis_Master-@@{calm_array_index}@@-@@{calm_random}@@"
    os_type = "Linux"
    readiness_probe = {
        "disabled": False,
        "delay_secs": "60",
Exemplo n.º 5
0
from calm.dsl.builtins import CalmVariable, CalmTask, action

CENTOS_KEY = read_local_file("keys/centos")
CENTOS_PUBLIC_KEY = read_local_file("keys/centos_pub")

Centos = basic_cred("centos",
                    CENTOS_KEY,
                    name="Centos",
                    type="KEY",
                    default=True)

Era_Disk = vm_disk_package(
    name="era_disk",
    config={
        # By default image type is set to DISK_IMAGE
        "image": {
            "source":
            "http://download.nutanix.com/era/1.1.1/ERA-Server-build-1.1.1-340d9db1118eac81219bec98507d4982045d8799.qcow2"
        }
    },
)
Virtio_CdRom = vm_disk_package(
    name="virtio_cdrom",
    config={
        "image": {
            "type":
            "ISO_IMAGE",
            "source":
            "http://10.40.64.33/GoldImages/NuCalm/ISO/Nutanix-VirtIO-1.1.4.iso",
        }
    },
)
Exemplo n.º 6
0
AhvVm = ahv_vm_resources()

CENTOS_USERNAME = read_local_file(".tests/centos_username")
CENTOS_PASSWORD = read_local_file(".tests/centos_password")
CENTOS_SSH_USERNAME = read_local_file(".tests/centos_ssh_username")
CENTOS_SSH_KEY = read_local_file(".tests/centos_ssh_key")

DefaultCred = basic_cred(CENTOS_USERNAME,
                         CENTOS_PASSWORD,
                         name="CENTOS",
                         default=True)
DefaultKeyCred = basic_cred(CENTOS_SSH_USERNAME,
                            CENTOS_SSH_KEY,
                            name="CENTOS_KEY",
                            type="key")
Era = vm_disk_package(name="era", config_file="specs/era_image_config.yaml")


class MyAhvVm(AhvVm):

    memory = 2
    vCPUs = 2
    cores_per_vCPU = 1
    disks = [
        AhvVmDisk(image_name="Centos7", bootable=True),
        AhvVmDisk.CdRom(image_name="SQLServer2014SP2"),
        AhvVmDisk.CdRom.Sata(image_name="SQLServer2014SP2"),
        AhvVmDisk.Disk.Scsi.cloneFromImageService(image_name="AHV_CENTOS_76"),
        AhvVmDisk.Disk.Pci.allocateOnStorageContainer(size=12),
        AhvVmDisk.CdRom.Sata.emptyCdRom(),
        AhvVmDisk.CdRom.Ide.emptyCdRom(),
Exemplo n.º 7
0
    ENV = CalmVariable.Simple("DEV")


class MySQLPackage(Package):
    """Example package with variables, install tasks and link to service"""

    foo = CalmVariable.Simple("bar")
    services = [ref(MySQLService)]

    @action
    def __install__():
        CalmTask.Exec.ssh(name="Task1", script="echo @@{foo}@@")


Virtio = vm_disk_package(name="era", config_file="specs/virtio_image_config.yaml")


class AHVVMforMySQL(Substrate):
    """AHV VM config given by reading a spec file"""

    provider_spec = read_ahv_spec(
        "specs/ahv_provider_spec.yaml", disk_packages={1: Virtio}
    )


class MySQLDeployment(Deployment):
    """Sample deployment pulling in service and substrate references"""

    packages = [ref(MySQLPackage)]
    substrate = ref(AHVVMforMySQL)
Exemplo n.º 8
0
    main()

#Define VM Resource Object
from calm.dsl.builtins import SimpleDeployment, SimpleBlueprint
from calm.dsl.builtins import read_local_file, basic_cred
from calm.dsl.builtins import vm_disk_package, AhvVmResources, AhvVmDisk, AhvVmNic, AhvVmGC, AhvVm

CENTOS_PASSWD = read_local_file('centos')
CENTOS_CRED = basic_cred('centos',
                         CENTOS_PASSWD,
                         name='CENTOS_CRED',
                         default=True)

CENTOS_IMAGE_SOURCE = 'https://cloud.centos.org/centos/8/x86_64/images/CentOS-8-ec2-8.1.1911-20200113.3.x86_64.qcow2'
CentosPackage = vm_disk_package(
    name='centos_disk', config={'image': {
        'source': CENTOS_IMAGE_SOURCE
    }})


class CentosVmResources(AhvVmResources):
    memory = 4
    vCPUs = 2
    cores_per_vCPU = 1
    disks = [
        AhvVmDisk.Disk.Scsi.cloneFromVMDiskPackage(CentosPackage,
                                                   bootable=True)
    ]
    nics = [AhvVmNic.DirectNic.ingress("dnd-demo")]
    guest_customization = AhvVmGC.CloudInit(
        config={
            'password': CENTOS_PASSWD,
Exemplo n.º 9
0
from calm.dsl.builtins import vm_disk_package
from calm.dsl.builtins import read_env

import sys
sys.path.append('')

from variablestemplate import *

# Import .env variables
ENV = read_env()

AHV_CENTOS_76 = vm_disk_package(
    name="AHV_CENTOS_76",
    config={
        # By default image type is set to DISK_IMAGE
        "image": {
            "source": ENV.get("CENTOS_IMAGE_SOURCE")
        }
    },
)

# Credentials definition
CREDENTIALS = read_env('.local/credentials')

OS_USERNAME = os.getenv("OS_USERNAME") or CREDENTIALS.get("OS_USERNAME")
OS_PASSWORD = os.getenv("OS_PASSWORD") or CREDENTIALS.get("OS_PASSWORD")

Cred_OS = basic_cred(username=OS_USERNAME,
                     password=OS_PASSWORD,
                     name="Cred_OS",
                     default=True,
Exemplo n.º 10
0
    def __install__():
        """Package installation tasks for the MySQL database server"""

        CalmTask.Exec.ssh(name="PackageInstallTask",
                          filename="scripts/mysql-install.sh")


CENTOS_7_CLOUD = vm_disk_package(
    name="CENTOS_7_CLOUD",
    description="",
    config={
        "image": {
            "name": "CentOS-7-x86_64-1810.qcow2",
            "type": "DISK_IMAGE",
            "source":
            "http://download.nutanix.com/calm/CentOS-7-x86_64-1810.qcow2",
            "architecture": "X86_64",
        },
        "product": {
            "name": "CentOS",
            "version": "7"
        },
        "checksum": {},
    },
)


class MySQLSubstrate(Substrate):
    """
    The Calm Substrate outlines the "wrapper" for our VM, e.g. the VM's
    operating system, the VM spec from specs/mysql-spec.yaml, the disks
    the VM will have attached etc.
Exemplo n.º 11
0
from calm.dsl.builtins import Service, Package, Substrate
from calm.dsl.builtins import Deployment, Profile, Blueprint
from calm.dsl.builtins import CalmVariable, CalmTask, action

from calm.dsl.builtins import parallel, read_provider_spec
from calm.dsl.builtins import read_local_file, provider_spec

NutanixPublicKey = read_local_file("nutanix_public_key")
NutanixKey = read_local_file("nutanix_key")
NutanixCred = basic_cred("nutanix",
                         name="Nutanix",
                         type="KEY",
                         password=NutanixKey,
                         default=True)

Centos74_Image = vm_disk_package(
    name="centos7_generic", config_file="image_configs/centos74_disk.yaml")


class IaaS(Service):
    """IaaS service"""
    @action
    def NginxInstall():
        CalmTask.Exec.ssh(name="Intall Nginx",
                          filename="scripts/nginx_install.sh",
                          cred=NutanixCred)


class IaaSPackage(Package):
    """IaaS Package"""

    services = [ref(IaaS)]