summaryrefslogtreecommitdiffstats
path: root/build/f_isoroot/f_bootstrap/post-scripts/03_install_repo.sh
blob: 427a55adddec7a7d82c89f74b0521989fcbd046e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#/bin/sh
echo "Installing pre-build repo"
if [ ! -d /opt/opnfv/nailgun ]; then
  echo "Error - found no repo!"
  exit 1
fi

mkdir -p /var/www/nailgun
mv /opt/opnfv/nailgun/* /var/www/nailgun
if [ $? -ne 0 ]; then
  echo "Error moving repos to their correct location!"
  exit 1
fi
rmdir /opt/opnfv/nailgun
if [ $? -ne 0 ]; then
  echo "Error removing /opt/opnfv/nailgun directory!"
  exit 1
fi
echo "Done installing pre-build repo"
ariable.Class */ .highlight .vg { color: #dd7700 } /* Name.Variable.Global */ .highlight .vi { color: #3333bb } /* Name.Variable.Instance */ .highlight .vm { color: #336699 } /* Name.Variable.Magic */ .highlight .il { color: #0000DD; font-weight: bold } /* Literal.Number.Integer.Long */ }
heat_template_version: 2015-04-30
description: 'OpenStack ceph storage node configured by Puppet'
parameters:
  Flavor:
    description: Flavor for the Ceph Storage node.
    type: string
    constraints:
      - custom_constraint: nova.flavor
  Image:
    type: string
    default: overcloud-ceph-storage
    constraints:
      - custom_constraint: glance.image
  ImageUpdatePolicy:
    default: 'REBUILD_PRESERVE_EPHEMERAL'
    description: What policy to use when reconstructing instances. REBUILD for rebuilds, REBUILD_PRESERVE_EPHEMERAL to preserve /mnt.
    type: string
  KeyName:
    description: Name of an existing EC2 KeyPair to enable SSH access to the instances
    type: string
    default: default
    constraints:
      - custom_constraint: nova.keypair
  NtpServer:
    type: string
    default: ''
  EnablePackageInstall:
    default: 'false'
    description: Set to true to enable package installation via Puppet
    type: boolean
  ServiceNetMap:
    default: {}
    description: Mapping of service_name -> network name. Typically set
                 via parameter_defaults in the resource registry.
    type: json

resources:
  CephStorage:
    type: OS::Nova::Server
    properties:
      image: {get_param: Image}
      image_update_policy: {get_param: ImageUpdatePolicy}
      flavor: {get_param: Flavor}
      key_name: {get_param: KeyName}
      networks:
        - network: ctlplane
      user_data_format: SOFTWARE_CONFIG
      user_data: {get_resource: NodeUserData}

  NodeUserData:
    type: OS::TripleO::NodeUserData

  StoragePort:
    type: OS::TripleO::CephStorage::Ports::StoragePort
    properties:
      ControlPlaneIP: {get_attr: [CephStorage, networks, ctlplane, 0]}

  StorageMgmtPort:
    type: OS::TripleO::CephStorage::Ports::StorageMgmtPort
    properties:
      ControlPlaneIP: {get_attr: [CephStorage, networks, ctlplane, 0]}

  NetworkConfig:
    type: OS::TripleO::CephStorage::Net::SoftwareConfig
    properties:
      StorageIpSubnet: {get_attr: [StoragePort, ip_subnet]}
      StorageMgmtIpSubnet: {get_attr: [StorageMgmtPort, ip_subnet]}

  NetIpSubnetMap:
    type: OS::TripleO::Network::Ports::NetIpMap
    properties:
      StorageIp: {get_attr: [StoragePort, ip_subnet]}
      StorageMgmtIp: {get_attr: [StorageMgmtPort, ip_subnet]}

  NetworkDeployment:
    type: OS::TripleO::SoftwareDeployment
    properties:
      config: {get_resource: NetworkConfig}
      server: {get_resource: CephStorage}

  CephStorageDeployment:
    type: OS::Heat::StructuredDeployment
    properties:
      config: {get_resource: CephStorageConfig}
      server: {get_resource: CephStorage}
      input_values:
        ntp_servers:
          str_replace:
            template: '["server"]'
            params:
              server: {get_param: NtpServer}
        enable_package_install: {get_param: EnablePackageInstall}
        ceph_cluster_network: {get_attr: [NetIpSubnetMap, net_ip_map, {get_param: [ServiceNetMap, CephClusterNetwork]}]}
        ceph_public_network: {get_attr: [NetIpSubnetMap, net_ip_map, {get_param: [ServiceNetMap, CephPublicNetwork]}]}

  CephStorageConfig:
    type: OS::Heat::StructuredConfig
    properties:
      group: os-apply-config
      config:
        hiera:
          hierarchy:
            - heat_config_%{::deploy_config_name}
            - ceph_cluster # provided by CephClusterConfig
            - ceph
            - '"%{::osfamily}"'
            - common
          datafiles:
            common:
              raw_data: {get_file: hieradata/common.yaml}
            ceph:
              raw_data: {get_file: hieradata/ceph.yaml}
              mapped_data:
                ntp::servers: {get_input: ntp_servers}
                enable_package_install: {get_input: enable_package_install}
                ceph::profile::params::cluster_network: {get_input: ceph_cluster_network}
                ceph::profile::params::public_network: {get_input: ceph_public_network}

outputs:
  hosts_entry:
    value:
      str_replace:
        template: "IP HOST"
        params:
          IP: {get_attr: [CephStorage, networks, ctlplane, 0]}
          HOST: {get_attr: [CephStorage, name]}
  nova_server_resource:
    description: Heat resource handle for the ceph storage server
    value:
      {get_resource: CephStorage}
  storage_ip_address:
    description: IP address of the server in the storage network
    value: {get_attr: [StoragePort, ip_address]}
  storage_mgmt_ip_address:
    description: IP address of the server in the storage_mgmt network
    value: {get_attr: [StorageMgmtPort, ip_address]}