본문으로 바로가기

[RHOSP 16.1] RHOSP 16.1 Templates

category Cloud/RedHat - OpenStack 2023. 4. 1. 09:00
반응형

약 2년전에 구축했던 RHOSP 16.1 배포에 대한 템플릿 내용입니다.

stack 계정을 만드는 등.. 설치 방법은 레드햇 사이트 등등에 많이 공유 되어있 있어 따로 기재하진 않았고 사용했던 template 정보만 공유합니다.

 

환경 정보 :

1. Director VM x1 , Controller VM x3, Compute VM x2, RHEL Repo VM x 1 on KVM-Host  (DPDK 미 구축)

2. OS Version: RHEL 8.2

3. RHEL Repository : Offline / Container Image : Online 을 통해 배포

4. NFS를 통한 Glance Image, Volume, Volume-backup 구성 (RHEL Repo에 NFS-Server 구성)

5. Single Stack 구성

6. KVM-Host에 VBMC 사용

 

아래 github에서 다운 받을 수 있습니다.

https://github.com/hkjeon/rhosp16.1

 

 

1. Undercloud templates

1.1 undercloud.conf

undercloud 설치에 필요한 config 파일 내용입니다.

[DEFAULT]
local_interface = ens3
local_ip = 55.55.157.170/24
subnets = AZ-0-OSC-CP0
local_subnet = AZ-0-OSC-CP0

generate_service_certificate = false
enable_tempest = false
enable_telemetry = false
enable_ui = true
enable_validation = true
enable_routed_networks = true
container_images_file = containers-prepare-parameter.yaml


undercloud_admin_host = 55.55.157.170
undercloud_debug = true
undercloud_hostname = hk-director.hk.com
undercloud_ntp_servers = 55.55.157.4
undercloud_public_host = 55.55.152.170

[AZ-0-OSC-CP0]
cidr = 55.55.157.0/24
dhcp_start = 55.55.157.171
dhcp_end = 55.55.157.179
gateway = 55.55.157.1
inspection_iprange = 55.55.157.161,55.55.157.168
masquerade = false

 

 

1.2 containers-prepare-parameter.yaml

RHOSP16 (train) 부터 undercloud 및 overcloud에서 모두 container를 사용합니다.

container 준비를 위한 registry 주소, tag 정보, Registry 접근을 위한 RedHat 계정 정보등을 구성합니다.

# Generated with the following on 2021-01-26T15:35:47.981831
#
#   openstack tripleo container image prepare default --local-push-destination --output-env-file containers-prepare-parameter.yaml
#

parameter_defaults:
  ContainerImageRegistryLogin: true
  ContainerImagePrepare:
  - push_destination: true
    set:
      ceph_alertmanager_image: ose-prometheus-alertmanager
      ceph_alertmanager_namespace: registry.redhat.io/openshift4
      ceph_alertmanager_tag: 4.1
      ceph_grafana_image: rhceph-4-dashboard-rhel8
      ceph_grafana_namespace: registry.redhat.io/rhceph
      ceph_grafana_tag: 4
      ceph_image: rhceph-4-rhel8
      ceph_namespace: registry.redhat.io/rhceph
      ceph_node_exporter_image: ose-prometheus-node-exporter
      ceph_node_exporter_namespace: registry.redhat.io/openshift4
      ceph_node_exporter_tag: v4.1
      ceph_prometheus_image: ose-prometheus
      ceph_prometheus_namespace: registry.redhat.io/openshift4
      ceph_prometheus_tag: 4.1
      ceph_tag: latest
      name_prefix: openstack-
      name_suffix: ''
      namespace: registry.redhat.io/rhosp-rhel8
      neutron_driver: ovs
      rhel_containers: false
      tag: '16.1'
    tag_from_label: '{version}-{release}'
  ContainerImageRegistryCredentials:
    registry.redhat.io:
      {redhat ID}: "{redhat password}"

 

 

1.3 /home/stack/instackenv/instack.yaml

Baremetal node 등록에 필요한 Openstack Controller의 HW 정보를 구성합니다.

nodes:
  - "name": "hk-osc-1"
    "pm_addr": "55.55.157.4"
    "mac": ["52:54:00:aa:8c:5a"]
    "pm_type": "ipmi"
    "pm_user": "admin"
    "pm_password": "hpinvent"
    "pm_port": "6451"
    "capabilities": "node:controller-0,boot_option:local"
    "root_device": {
       "name":"/dev/vda"
        }

  - "name": "hk-osc-2"
    "pm_addr": "55.55.157.4"
    "mac": ["52:54:00:de:24:a1"]
    "pm_type": "ipmi"
    "pm_user": "admin"
    "pm_password": "hpinvent"
    "pm_port": "6452"
    "capabilities": "node:controller-1,boot_option:local"
    "root_device": {
       "name":"/dev/vda"
        }

  - "name": "hk-osc-3"
    "pm_addr": "55.55.157.4"
    "mac": ["52:54:00:b8:d3:2b"]
    "pm_type": "ipmi"
    "pm_user": "admin"
    "pm_password": "hpinvent"
    "pm_port": "6453"
    "capabilities": "node:controller-2,boot_option:local"
    "root_device": {
       "name":"/dev/vda"
        }

 

 

1.4 /home/stack/instackenv/instack-ovs.yaml

Baremetal node 등록에 필요한 Openstack Compute노드의 HW 정보를 구성합니다.

nodes:
  - "name": "hk-comp-1"
    "pm_addr": "55.55.157.4"
    "mac": ["52:54:00:8c:bb:a0"]
    "pm_type": "ipmi"
    "pm_user": "admin"
    "pm_password": "hpinvent"
    "pm_port": "6454"
    "capabilities": "node:compute-ovs-0,boot_option:local"
    "root_device": {
       "name":"/dev/vda"
        }

  - "name": "hk-comp-2"
    "pm_addr": "55.55.157.4"
    "mac": ["52:54:00:e0:b8:8e"]
    "pm_type": "ipmi"
    "pm_user": "admin"
    "pm_password": "hpinvent"
    "pm_port": "6455"
    "capabilities": "node:compute-ovs-1,boot_option:local"
    "root_device": {
       "name":"/dev/vda"
        }

  - "name": "hk-comp-3"
    "pm_addr": "55.55.157.4"
    "mac": ["52:54:00:ec:e1:c9"]
    "pm_type": "ipmi"
    "pm_user": "admin"
    "pm_password": "hpinvent"
    "pm_port": "6456"
    "capabilities": "node:compute-ovs-2,boot_option:local"
    "root_device": {
       "name":"/dev/vda"
        }

 

 

2. Overcloud templates

2.1 network_data.yaml

아래 파일들은 /home/stack/templates/ 에 파일 내용입니다.

# --------------------------------------------------------------- #
- name: InternalApi
  name_lower: internal_api
  vip: true
  ip_subnet: '55.55.155.0/24'
  allocation_pools: [{'start': '55.55.155.181', 'end': '55.55.155.189'}]
# --------------------------------------------------------------- #
- name: External
  vip: true
  name_lower: external
  ip_subnet: '55.55.152.0/24'
  allocation_pools: [{'start': '55.55.152.181', 'end': '55.55.152.189'}]
  gateway_ip: '55.55.152.1'

 

 

2.2 node-info.yaml

parameter_defaults:
  OvercloudControllerFlavor: baremetal
  ControllerCount: 3
  ControllerSchedulerHints:
    'capabilities:node': 'controller-%index%'
# --------------------------------------------------------------- #
  OvercloudComputeFlavor: baremetal
  ComputeOvsCount: 3
  ComputeOvsSchedulerHints:
    'capabilities:node': 'compute-ovs-%index%'
# --------------------------------------------------------------- #
  OvercloudComputeDpdkFlavor: baremetal
  ComputeDpdkCount: 0
  ComputeDpdkSchedulerHints:
    'capabilities:node': 'compute-dpdk-%index%'
# --------------------------------------------------------------- #

  HostnameMap:
    overcloud-controller-0: hk-osc-1
    overcloud-controller-1: hk-osc-2
    overcloud-controller-2: hk-osc-3
#-----------------------------------------------------------#
# Leaf0                                                     #
#-----------------------------------------------------------#
    overcloud-compute-ovs-0: hk-comp-1
    overcloud-compute-ovs-1: hk-comp-2 
    overcloud-compute-ovs-2: hk-comp-3

    overcloud-compute-dpdk-0: hk-dpdk-1

 

 

2.3 roles-data.yaml

###############################################################################
# Role: Controller                                                            #
###############################################################################
- name: Controller
  description: |
    Controller role that has all the controler services loaded and handles
    Database, Messaging and Network functions.
  CountDefault: 3
  tags:
    - primary
    - controller
  networks:
    External:
      subnet: external_subnet
    InternalApi:
      subnet: internal_api_subnet
  HostnameFormatDefault: '%stackname%-controller-%index%'
  uses_deprecated_params: True
  deprecated_param_extraconfig: 'controllerExtraConfig'
  deprecated_param_flavor: 'OvercloudControlFlavor'
  deprecated_param_image: 'controllerImage'
  deprecated_nic_config_name: 'controller.yaml'
  ServicesDefault:
    - OS::TripleO::Services::Aide
    - OS::TripleO::Services::AuditD
    - OS::TripleO::Services::BootParams
    - OS::TripleO::Services::CACerts
    - OS::TripleO::Services::CertmongerUser
    - OS::TripleO::Services::CinderApi
    - OS::TripleO::Services::CinderBackup
    - OS::TripleO::Services::CinderScheduler
    - OS::TripleO::Services::CinderVolume
    - OS::TripleO::Services::Clustercheck
    - OS::TripleO::Services::ContainerImagePrepare
    - OS::TripleO::Services::Docker
    - OS::TripleO::Services::Ec2Api
    - OS::TripleO::Services::Etcd
    - OS::TripleO::Services::GlanceApi
    - OS::TripleO::Services::HAproxy
    - OS::TripleO::Services::HeatApi
    - OS::TripleO::Services::HeatApiCloudwatch
    - OS::TripleO::Services::HeatApiCfn
    - OS::TripleO::Services::HeatEngine
    - OS::TripleO::Services::Horizon
    - OS::TripleO::Services::Ipsec
    - OS::TripleO::Services::Iscsid
    - OS::TripleO::Services::Keepalived
    - OS::TripleO::Services::Kernel
    - OS::TripleO::Services::Keystone
    - OS::TripleO::Services::LoginDefs
    - OS::TripleO::Services::Memcached
    - OS::TripleO::Services::MetricsQdr
    - OS::TripleO::Services::MySQL
    - OS::TripleO::Services::MySQLClient
    - OS::TripleO::Services::NeutronApi
    - OS::TripleO::Services::NeutronCorePlugin
      #    - OS::TripleO::Services::NeutronOvsAgent
    - OS::TripleO::Services::NovaApi
    - OS::TripleO::Services::NovaConductor
    - OS::TripleO::Services::NovaIronic
    - OS::TripleO::Services::NovaMetadata
    - OS::TripleO::Services::NovaScheduler
    - OS::TripleO::Services::NovaVncProxy
    - OS::TripleO::Services::ContainersLogrotateCrond
    - OS::TripleO::Services::OpenStackClients
    - OS::TripleO::Services::Pacemaker
    - OS::TripleO::Services::PlacementApi
    - OS::TripleO::Services::OsloMessagingRpc
    - OS::TripleO::Services::OsloMessagingNotify   
    - OS::TripleO::Services::Podman
    - OS::TripleO::Services::Rear
    - OS::TripleO::Services::Redis
    - OS::TripleO::Services::Rsyslog
    - OS::TripleO::Services::RsyslogSidecar
    - OS::TripleO::Services::Securetty
    - OS::TripleO::Services::Snmp
    - OS::TripleO::Services::Sshd
    - OS::TripleO::Services::Timezone
    - OS::TripleO::Services::TripleoFirewall
    - OS::TripleO::Services::TripleoPackages
    - OS::TripleO::Services::Tuned
###############################################################################
# Role: ComputeOvs                                                            #
###############################################################################
- name: ComputeOvs
  description: |
    Compute OvS Role
  CountDefault: 0
  networks:
    InternalApi:
      subnet: internal_api_subnet
  HostnameFormatDefault: '%stackname%-compute-ovs-%index%'
  RoleParametersDefault:
    TunedProfileName: "virtual-guest"
  deprecated_nic_config_name: 'compute-ovs.yaml'
  ServicesDefault:
    - OS::TripleO::Services::Aide
    - OS::TripleO::Services::AuditD
    - OS::TripleO::Services::CACerts
    - OS::TripleO::Services::CertmongerUser
    - OS::TripleO::Services::ComputeNeutronCorePlugin
    - OS::TripleO::Services::ComputeNeutronL3Agent
    - OS::TripleO::Services::ComputeNeutronMetadataAgent
    - OS::TripleO::Services::ComputeNeutronOvsAgent  
      #    - OS::TripleO::Services::ComputeNeutronOvsDpdk
    - OS::TripleO::Services::Docker
    - OS::TripleO::Services::Iscsid
    - OS::TripleO::Services::Kernel
    - OS::TripleO::Services::LoginDefs
    - OS::TripleO::Services::MySQLClient
    - OS::TripleO::Services::NeutronDhcpAgent
    - OS::TripleO::Services::NeutronMetadataAgent
    - OS::TripleO::Services::NovaAZConfig
    - OS::TripleO::Services::NovaCompute
    - OS::TripleO::Services::NovaLibvirt
    - OS::TripleO::Services::NovaMigrationTarget
    - OS::TripleO::Services::ContainersLogrotateCrond
    - OS::TripleO::Services::OvsDpdkNetcontrold
    - OS::TripleO::Services::Podman
    - OS::TripleO::Services::Rear
    - OS::TripleO::Services::Securetty
    - OS::TripleO::Services::Snmp
    - OS::TripleO::Services::Sshd
    - OS::TripleO::Services::Timezone
    - OS::TripleO::Services::TripleoFirewall
    - OS::TripleO::Services::TripleoPackages
    - OS::TripleO::Services::Tuned
###############################################################################
# Role: ComputeDpdk                                                           #
###############################################################################
- name: ComputeDpdk
  description: |
    Compute Dpdk Role
  CountDefault: 0
  networks:
    InternalApi:
      subnet: internal_api_subnet
  HostnameFormatDefault: '%stackname%-compute-dpdk-%index%'
  RoleParametersDefault:
    TunedProfileName: "cpu-partitioning"
  deprecated_nic_config_name: 'compute-dpdk.yaml'
  ServicesDefault:
    - OS::TripleO::Services::Aide
    - OS::TripleO::Services::AuditD
    - OS::TripleO::Services::CACerts
    - OS::TripleO::Services::CertmongerUser
    - OS::TripleO::Services::ComputeNeutronCorePlugin
    - OS::TripleO::Services::ComputeNeutronL3Agent
    - OS::TripleO::Services::ComputeNeutronMetadataAgent
    #- OS::TripleO::Services::ComputeNeutronOvsAgent  
    - OS::TripleO::Services::ComputeNeutronOvsDpdk
    - OS::TripleO::Services::Docker
    - OS::TripleO::Services::Iscsid
    - OS::TripleO::Services::Kernel
    - OS::TripleO::Services::LoginDefs
    - OS::TripleO::Services::MySQLClient
    - OS::TripleO::Services::NeutronDhcpAgent
    - OS::TripleO::Services::NeutronMetadataAgent
    - OS::TripleO::Services::NovaAZConfig
    - OS::TripleO::Services::NovaCompute
    - OS::TripleO::Services::NovaLibvirt
    - OS::TripleO::Services::NovaMigrationTarget
    - OS::TripleO::Services::ContainersLogrotateCrond
    - OS::TripleO::Services::OvsDpdkNetcontrold
    - OS::TripleO::Services::Podman
    - OS::TripleO::Services::Rear
    - OS::TripleO::Services::Securetty
    - OS::TripleO::Services::Snmp
    - OS::TripleO::Services::Sshd
    - OS::TripleO::Services::Timezone
    - OS::TripleO::Services::TripleoFirewall
    - OS::TripleO::Services::TripleoPackages
    - OS::TripleO::Services::Tuned

 

 

3. Overcloud templates

3.1 1-commons-parameters.yaml

아래 파일들은 /home/stack/templates/environment/ 에 파일 내용입니다.

parameter_defaults:
  # TimeZone for the environment
  TimeZone: "Asia/Seoul"

  # DNS and NTP Server
  DnsServers: ["8.8.8.8"]
  NtpServers: ["55.55.157.4"]

  # Public API Domain Name 
  
  CloudDomain: hk.com
  CloudName: overcloud.hk.com
  CloudNameCtlplane: overcloud.ctlplane.hk.com
  CloudNameInternal: overcloud.internalapi.hk.com
    #CloudNameStorage: overcloud.storage.hk.com
    #CloudNameStorageManagement: overcloud.storagemgmt.hk.com


  # Admin Keystone user password
  AdminPassword: 'test1234'

  # Custom SSH Config to allow password and Root login 
  SshServerOptions:
    UseDNS: 'yes'
    PasswordAuthentication: 'yes'
    PermitRootLogin: 'no'
    PermitEmptyPasswords: 'no'

 

 

3.2 10-endpoint.yaml

parameter_defaults:
  ServiceNetMap:
    KeystoneAdminApiNetwork: internal_api

 

 

3.3 10-neutron-custom-configs.yaml

parameter_defaults:
  # List of Plugins enabled in Neutron
  NeutronPluginExtensions: 'qos,port_security'

  # Metadata through Neutron DHCP
  NeutronEnableIsolatedMetadata: true
  NeutronEnableForceMetadata: true

  # Neutron allowed Network types
  NeutronNetworkType: 'vlan,flat'
  NeutronTunnelTypes: ''

  # Neutron VLAN range per bridge for OS Controller
  NeutronNetworkVLANRanges: 'physnet,physnet-az0-ovs-svc0:100:110,physnet-az1-bare-dpdk:1000:1100'
  NeutronML2PhysicalNetworkMtus: "physnet:1500,physnet-az0-ovs-svc0:1500,physnet-az1-bare-dpdk:1500"

  # Neutron Flat Network
  NeutronFlatNetworks: ''

  # Default global MTU for the platform
  # In ExtraConfig specific override for overlay
  NeutronGlobalPhysnetMtu: 9000
  NeutronMechanismDrivers: ['openvswitch', 'sriovnicswitch']
  NeutronOVSFirewallDriver: noop # before - openvswitch
  
  NeutronDhcpAgentsPerNetwork: 2
  
  NumDpdkInterfaceRxQueues: 2

 

 

3.4 10-nova-custom-configs.yaml

parameter_defaults:
  NovaSchedulerDefaultFilters: 
    - RetryFilter
    - AvailabilityZoneFilter
    - ComputeFilter
    - ImagePropertiesFilter
    - ServerGroupAntiAffinityFilter
    - ServerGroupAffinityFilter
    - ComputeCapabilitiesFilter
    - PciPassthroughFilter
    - NUMATopologyFilter
    - AggregateInstanceExtraSpecsFilter

  NovaSchedulerAvailableFilters: ["nova.scheduler.filters.all_filters","nova.scheduler.filters.pci_passthrough_filter.PciPassthroughFilter"]

  NovaComputeLibvirtType: 'qemu' ## if compute node is vm

 

3.5 10-telemetry-custom-configs.yaml

parameter_defaults:
  # Gnocchi backend can be either 'rbd' (Ceph), 'swift' or 'file'.
  GnocchiBackend: file

 

 

3.6 2-network-environment.yaml

resource_registry:
  # NIC Configuration files for all the roles
  OS::TripleO::Controller::Net::SoftwareConfig:             /home/stack/templates/nic-configs/controller.yaml
  OS::TripleO::ComputeOvs::Net::SoftwareConfig:             /home/stack/templates/nic-configs/compute-ovs.yaml
  OS::TripleO::ComputeDpdk::Net::SoftwareConfig:            /home/stack/templates/nic-configs/compute-dpdk.yaml

  # VIP Ports
  OS::TripleO::Network::Ports::ExternalVipPort:             /usr/share/openstack-tripleo-heat-templates/network/ports/external.yaml
  OS::TripleO::Network::Ports::InternalApiVipPort:          /usr/share/openstack-tripleo-heat-templates/network/ports/internal_api.yaml
  OS::TripleO::Network::Ports::RedisVipPort:                /usr/share/openstack-tripleo-heat-templates/network/ports/vip.yaml

  # IP for Controller
  OS::TripleO::Controller::Ports::ExternalPort:             /usr/share/openstack-tripleo-heat-templates/network/ports/external_from_pool.yaml
  OS::TripleO::Controller::Ports::InternalApiPort:          /usr/share/openstack-tripleo-heat-templates/network/ports/internal_api_from_pool.yaml

  # IP for Compute-Ovs
  OS::TripleO::ComputeOvs::Ports::InternalApiPort:          /usr/share/openstack-tripleo-heat-templates/network/ports/internal_api_from_pool.yaml

  # IP for Compute-Dpdk
  OS::TripleO::ComputeDpdk::Ports::InternalApiPort:          /usr/share/openstack-tripleo-heat-templates/network/ports/internal_api_from_pool.yaml



parameter_defaults:
  # VIP Address
  ControlFixedIPs:            [{'ip_address':'55.55.157.180'}]
  PublicVirtualFixedIPs:      [{'ip_address':'55.55.152.180'}]
  InternalApiVirtualFixedIPs: [{'ip_address':'55.55.155.180'}]
  RedisVirtualFixedIPs:       [{'ip_address':'55.55.155.179'}]
#-----------------------------------------------------------------------------------#
  ControlPlaneSubnet: AZ-0-OSC-CP0
  ControllerControlPlaneSubnet: AZ-0-OSC-CP0
  ComputeOvsControlPlaneSubnet: AZ-0-OSC-CP0
  ComputeDpdkControlPlaneSubnet: AZ-0-OSC-CP0
#-----------------------------------------------------------------------------------#
  # Add in configuration for the Control Plane
  ControlPlaneSubnetCidr: "24"
  ControlPlaneDefaultRoute: 55.55.157.1
  AZ-0-OSC-CP0EC2MetadataIp: 55.55.157.170
#-----------------------------------------------------------------------------------#
  # Public Endpoint
  ExternalNetCidr: 55.55.152.0/24
  ExternalAllocationPools: [{'start': '55.55.152.181', 'end': '55.55.152.189'}]
  ExternalNetworkVlanID: 202
  #ExternalInterfaceDefaultRoute: 55.55.152.1
#-----------------------------------------------------------------------------------#
  # admin, internal Endpoint
  InternalApiNetCidr: 55.55.155.0/24
  InternalApiAllocationPools: [{'start': '55.55.155.181', 'end': '55.55.155.189'}]
  InternalApiNetworkVlanID: 205
#-----------------------------------------------------------------------------------#
  # To refresh the overcloud nodes network configuration at every Overcloud Update
  # ControllerNetworkDeploymentActions: ['CREATE','UPDATE']
  # ComputeOvsNetworkDeploymentActions: ['CREATE','UPDATE']
  # ComputeDpdkNetworkDeploymentActions: ['CREATE','UPDATE']
#-----------------------------------------------------------------------------------#
  # Static IP for Controller
  ControllerIPs:
    ctlplane:
    - 55.55.157.181
    - 55.55.157.182
    - 55.55.157.183
    external:
    - 55.55.152.181
    - 55.55.152.182
    - 55.55.152.183
    internal_api:
    - 55.55.155.181
    - 55.55.155.182
    - 55.55.155.183

  # Static IP for ComputeOvs 
  ComputeOvsIPs:
    ctlplane:
    - 55.55.157.185
    - 55.55.157.186
    - 55.55.157.187
    internal_api:
    - 55.55.155.185
    - 55.55.155.186
    - 55.55.155.187

  # Static IP for ComputeDpdk 
  ComputeDpdkIPs:
    ctlplane:
    - 55.55.157.188
    internal_api:
    - 55.55.155.188

 

 

3.7 21-os-extraconfigs.yaml

resource_registry:
  # FirstBoot Script for initial configuration (i.e. Disk Wipe, Root Password, SSH Root Access)
  OS::TripleO::NodeUserData:                        ../firstboot/first-boot.yaml
  
  # tuned Script for Openstack Nodes
  #  OS::TripleO::NodeExtraConfigPost: ../extraconfig/31-tuned.yaml

parameter_defaults:
  # ------------------------------------------------------- #
  # !!! Warning !!! Node Replacement and Reuse Option
  # ------------------------------------------------------- #
  # ControllerRemovalPolicies: []
  # ControllerRemovalPoliciesMode: update
  # ComputeOvsRemovalPolicies: []
  # ComputeOvsRemovalPoliciesMode: update
  # ComputeDpdkRemovalPolicies: []
  # ComputeDpdkRemovalPoliciesMode: update
  # ------------------------------------------------------- #
  ControllerExtraConfig:
    nova::ram_allocation_ratio: 1.0
    nova::api::allow_resize_to_same_host: true
    nova::disk_allocation_ratio: 1.0
    nova::cpu_allocation_ratio: 1.0
    glance::api::limit_param_default: 100
    nova::pci::aliases:
      - name: "pcipt25g01"
        device_type: "type-PF"
        vendor_id: "8086"
        product_id: "158b"
  # ------------------------------------------------------- #
    neutron::agents::ml2::ovs::enable_security_group: true
    neutron::plugins::ml2::enable_security_group: true
    neutron::plugins::ml2::path_mtu: 1500
  # ------------------------------------------------------- #
    neutron::server::network_scheduler_driver: neutron.scheduler.dhcp_agent_scheduler.AZAwareWeightScheduler
    neutron::server::router_scheduler_driver: neutron.scheduler.l3_agent_scheduler.AZLeastRoutersScheduler
    neutron::server::dhcp_load_type: networks
  # ------------------------------------------------------- #
    neutron::server::default_availability_zones:
      - 'AZ-0-COMP-OVS'
      - 'AZ-1-COMP'
  # ------------------------------------------------------- #
  # Keystone token expiration set at 10 hours
  TokenExpiration: 36000
  # ------------------------------------------------------- #

  ComputeOvsParameters:
    NeutronBridgeMappings:
      - physnet:br-ex
      - physnet-az0-ovs-svc0:br-service0
    ExtraSysctlSettings:
      net.netfilter.nf_conntrack_max:
        value: 1000000
      net.nf_conntrack_max:
        value: 1000000
      net.ipv6.conf.all.disable_ipv6:
        value: 1
      kernel.sysrq:
        value: 1
  # ------------------------------------------------------- #
  # **** ComputeOvsApp Extraconfig ****
  # ------------------------------------------------------- #
  # ComputeOvsApp Leaf0 ExtraConfig
  # ------------------------------------------------------- #
  ComputeOvsExtraConfig:
    neutron::plugins::ml2::path_mtu: 1500
    neutron::plugins::ml2::physical_network_mtus: ['physnet-az0-ovs-svc0:1500']
    neutron::plugins::ml2::network_vlan_ranges: ['physnet-az0-ovs-svc0']
    neutron::agents::ml2::ovs::enable_security_group: true
    neutron::plugins::ml2::enable_security_group: true
    nova::compute::allow_resize_to_same_host: true
    nova::compute::force_config_drive: true
    nova::compute::resume_guests_state_on_host_boot: true
    nova::compute::libvirt::libvirt_inject_password: true
    nova::compute::libvirt::libvirt_inject_key: true
    nova::compute::libvirt::libvirt_inject_partition: -1
    nova::compute::libvirt::vncserver_listen: "%{hiera('internal_api')}"
    nova::compute::vncserver_proxyclient_address: "%{hiera('internal_api')}"
    cold_migration_ssh_inbound_addr: "%{hiera('internal_api')}"
    live_migration_ssh_inbound_addr: "%{hiera('internal_api')}"
    nova::migration::libvirt::live_migration_inbound_addr: "%{hiera('internal_api')}"
    nova::my_ip: "%{hiera('internal_api')}"
    tripleo::profile::base::database::mysql::client::mysql_client_bind_address: "%{hiera('internal_api')}"
    # ---- Add availability zone Neutron ---- #
    neutron::agents::dhcp::availability_zone: AZ-0-COMP-OVS
    # ---- Add availability zone Neutron ---- #
    # ------------------------------------------------------- #

 

 

3.8 3-storage-environment.yaml

parameter_defaults:
  CinderEnableIscsiBackend: false
  CinderEnableRbdBackend: false

  ExtraConfig:
    horizon::cinder_options: { enable_backup: true }

  NovaEnableRbdBackend: false

  GlanceBackend: file

  # Config NFS for glance images.
  GlanceNfsEnabled: true
  GlanceNfsShare: '55.55.157.253:/root/data/nfs/glance-images'
  GlanceNfsOptions: 'rw,sync,context=system_u:object_r:svirt_sandbox_file_t:s0'  


  # Config NFS for Cinder Volumes.
  CinderEnableNfsBackend: true
  CinderNfsMountOptions: 'nfsvers=3,rw,sync,intr,bg'
  CinderNfsServers: '55.55.157.253:/root/data/nfs/cinder-volumes'

  # Config NFS for Cinder Backups
  CinderBackupBackend: nfs
  CinderBackupNfsMountOptions: 'nfsvers=3,rw,sync,intr,bg'
  CinderBackupNfsShare: '55.55.157.253:/root/data/nfs/cinder-backups'

 

 

3.9 31-ovs-dpdk-sriov.yaml

resource_registry:
  OS::TripleO::Services::ComputeNeutronOvsDpdk:  /usr/share/openstack-tripleo-heat-templates/deployment/neutron/neutron-ovs-dpdk-agent-container-puppet.yaml
  OS::TripleO::Services::NeutronSriovAgent:      /usr/share/openstack-tripleo-heat-templates/deployment/neutron/neutron-sriov-agent-container-puppet.yaml
  OS::TripleO::Services::NeutronSriovHostConfig: /usr/share/openstack-tripleo-heat-templates/deployment/deprecated/neutron/neutron-sriov-host-config.yaml

parameter_defaults:
  ComputeDpdkParameters:
    # GRUB Kernel CLI
    KernelArgs: "default_hugepagesz=1GB hugepagesz=1G hugepages=30 intel_iommu=on intel_iommu=pt vfio_iommu_type1.allow_unsafe_interrupts=1 nmi_watchdog=0 transparent_hugepage=never intel_idle.max_cstate=0 processor.max_cstate=1 idle=mwait nohpet nosoftlockup isolcpus=1-9,11-19"

    # Tuned profile
    TunedProfileName: "cpu-partitioning"

    # Isolated pCPU from Kernel, NMI, IRQ, and userland
    IsolCpusList: "2-9,12-19"

    # Nova pCPU to be used by the vCPU
    NovaVcpuPinSet: ['2-9,12-19']

    # OVS housekeeper cores
    OvsDpdkCoreList: "1,11"

    # CPU Share for the QEMU Emulator Threads
    NovaComputeCpuSharedSet: "0,10"

    # OVS-DPDK PMD Threads pCPU
    OvsPmdCoreList: "1,11"

    # Reserved memory for the hypervisor   
    NovaReservedHostMemory: 4096

    # OVS-DPDK DPC config (DPC1 here)
    OvsDpdkMemoryChannels: "4"

    # OVS-DPDK Memory size for NUMA node    
    OvsDpdkSocketMemory: "1024,1024"
#    OvsDpdkSocketMemory: "4096,4096"

    NovaLibvirtRxQueueSize: 1024
    NovaLibvirtTxQueueSize: 1024
    
    # VHU Socket Group
    VhostuserSocketGroup: "hugetlbfs"
    
    NeutronBridgeMappings:
    - physnet-az1-bare-dpdk:br-dpdkbond0
    
    ExtraSysctlSettings:
      net.netfilter.nf_conntrack_max:
        value: 1000000
      net.nf_conntrack_max:
        value: 1000000
      net.ipv6.conf.all.disable_ipv6:
        value: 1
      kernel.sysrq:
        value: 1
   
    # Neutron Physical mapping between a custom name and physical devices
    NeutronPhysicalDevMappings:
        - physnet-az1-sriov1:p7p1
        - physnet-az1-sriov2:p7p2
    # Mapping of SR-IOV PF interface to neutron physical_network.
    NovaPCIPassthrough:
      - devname: "p7p1"
        physical_network: "physnet-az1-sriov1"
      - devname: "p7p2"
        physical_network: "physnet-az1-sriov2"
      - vendor_id: "8086"
        product_id: "158b"
        address: "0000:86:00.0"
      - vendor_id: "8086"
        product_id: "158b"
        address: "0000:86:00.1"
     
  # ------------------------------------------------------- #
  # **** ComputeDpdk Extraconfig ****
  # ------------------------------------------------------- #
  # ComputeDpdk Leaf0 ExtraConfig
  # ------------------------------------------------------- #
  ComputeDpdkExtraConfig:
    neutron::agents::ml2::ovs::enable_security_group: true
    neutron::plugins::ml2::enable_security_group: true
    nova::compute::allow_resize_to_same_host: true
    nova::compute::force_config_drive: true
    nova::compute::resume_guests_state_on_host_boot: true
    nova::compute::libvirt::libvirt_inject_password: true
    nova::compute::libvirt::libvirt_inject_key: true
    nova::compute::libvirt::libvirt_inject_partition: -1
    nova::compute::libvirt::vncserver_listen: "%{hiera('internal_api')}"
    nova::compute::vncserver_proxyclient_address: "%{hiera('internal_api')}"
    cold_migration_ssh_inbound_addr: "%{hiera('internal_api')}"
    live_migration_ssh_inbound_addr: "%{hiera('internal_api')}"
    nova::migration::libvirt::live_migration_inbound_addr: "%{hiera('internal_api')}"
    nova::my_ip: "%{hiera('internal_api')}"
    tripleo::profile::base::database::mysql::client::mysql_client_bind_address: "%{hiera('internal_api')}"
    # ---- Add availability zone Neutron ---- #
    neutron::agents::dhcp::availability_zone: AZ-0-COMP-OVS
    # ---- Add availability zone Neutron ---- #
    # ------------------------------------------------------- #

 

 

3.10 4-controller-fencing.yaml

parameter_defaults:
  EnableFencing: true
  FencingConfig:
    devices:
    # ------------------------------------------------------- #
    # Controller #1 Stonigh Fencing
    # ------------------------------------------------------- #
    - agent: fence_ipmilan
      host_mac: "52:54:00:aa:8c:5a"
      params:
        login: admin
        passwd: hpinvent
        ipaddr: 55.55.157.4
        ipport: 6451
        lanplus: true
        pcmk_host_list: hk-osc-1
    # ------------------------------------------------------- #
    # Controller #2 Stonigh Fencing
    # ------------------------------------------------------- #
    - agent: fence_ipmilan
      host_mac: "52:54:00:de:24:a1"
      params:
        login: admin
        passwd: hpinvent
        ipaddr: 55.55.157.4
        ipport: 6452
        lanplus: true
        pcmk_host_list: hk-osc-2
    # ------------------------------------------------------- #
    # Controller #3 Stonigh Fencing
    # ------------------------------------------------------- #
    - agent: fence_ipmilan
      host_mac: "52:54:00:b8:d3:2b"
      params:
        login: admin
        passwd: hpinvent
        ipaddr: 55.55.157.4
        ipport: 6453
        lanplus: true
        pcmk_host_list: hk-osc-3
    # ------------------------------------------------------- #

 

 

3.11 41-disable-swift.yaml

resource_registry:
  OS::TripleO::Services::SwiftProxy: OS::Heat::None
  OS::TripleO::Services::SwiftStorage: OS::Heat::None
  OS::TripleO::Services::SwiftRingBuilder: OS::Heat::None

 

3.12 42-disable-ceph.yaml

resource_registry:
  OS::TripleO::Services::CephMgr: OS::Heat::None
  OS::TripleO::Services::CephMon: OS::Heat::None
  OS::TripleO::Services::CephOSD: OS::Heat::None
  OS::TripleO::Services::CephClient: OS::Heat::None

 

 

3.13 99-server-blacklist.yaml

parameter_defaults:
  DeploymentServerBlacklist: []
#    - overcloud-compute-ovs-0

 

 

 

 

4. Overcloud templates

4.1 31-tuned.yaml

아래 파일들은 /home/stack/templates/extraconfig/ 에 파일 내용입니다.

heat_template_version: 2014-10-16
description: >
  Extra configuration

parameters:
  servers:
    type: json
  DeployIdentifier:
    type: string
  EndpointMap:
    default: {}
    type: json

resources:
  ExtraConfig:
    type: OS::Heat::SoftwareConfig
    properties:
      group: script
      inputs:
        - name: deploy_identifier
      config: |
        #!/bin/sh
        set -x
        function tuned_service_dependency() {
          tuned_service=/usr/lib/systemd/system/tuned.service
          grep -q "network.target" $tuned_service
          if [ "$?" -eq 0 ]; then
              sed -i '/After=.*/s/network.target//g' $tuned_service
          fi
          grep -q "Before=.*network.target" $tuned_service
          if [ ! "$?" -eq 0 ]; then
              grep -q "Before=.*" $tuned_service
              if [ "$?" -eq 0 ]; then
                  sed -i 's/^\(Before=.*\)/\1 network.target openvswitch.service/g' $tuned_service
              else
                  sed -i '/After/i Before=network.target openvswitch.service' $tuned_service
              fi
          fi
        }

        if hiera -c /etc/puppet/hiera.yaml service_names | grep -q neutron_ovs_dpdk_agent; then
            tuned_service_dependency
        fi

        if [[ `hostname` = *"controller"* ]]
        then
            hostname
        fi
        dnf install -y sysstat vim bash-completion tcpdump

  ExtraDeployments:
    type: OS::Heat::SoftwareDeployments
    properties:
      name: ExtraDeployments
      servers: {get_param: servers}
      config: {get_resource: ExtraConfig}
      actions: ['CREATE','UPDATE']
      input_values:
        deploy_identifier: {get_param: DeployIdentifier}

 

 

4.2 32-extra-firewallrule.yaml

parameter_defaults:
  ExtraConfig:
    tripleo::firewall::firewall_rules:
      '300 allow Zabbix agent':
        port: 150
        proto: tcp
        action: accept
      '301 allow Zabbix agent':
        port: 151
        proto: tcp
        action: accept
      '302 allow udagent':
        port: 38
        proto: tcp
        action: accept
      '303 allow Zabbix agent':
        port: 255
        proto: tcp
        action: accept

 

 

4.3  postconfig.yaml

resource_registry:
  OS::TripleO::NodeExtraConfigPost: /home/stack/templates/extraconfig/31-tuned.yaml

 

 

5. Overcloud templates

5.1 first-boot.yaml

아래 파일들은 /home/stack/templates/firstboot/ 에 파일 내용입니다.

heat_template_version: rocky
description: >
  Extra hostname configuration
resources:
  userdata:
    type: OS::Heat::MultipartMime
    properties:
      parts:
      - config: {get_resource: nameserver_config}
  nameserver_config:
    type: OS::Heat::SoftwareConfig
    properties:
      config: |
        #!/bin/bash
        cat > /etc/yum.repos.d/rhosp16.repo << EOF
        [rhel-8-for-x86_64-baseos-rpms]
        name=rhel-8-for-x86_64-baseos-rpms
        baseurl=http://55.55.157.253/rhel-8-for-x86_64-baseos-rpms
        enabled=1
        gpgcheck=0

        [rhel-8-for-x86_64-appstream-rpms]
        name=rhel-8-for-x86_64-appstream-rpms
        baseurl=http://55.55.157.253/rhel-8-for-x86_64-appstream-rpms
        enabled=1
        gpgcheck=0

        [rhel-8-for-x86_64-highavailability-rpms]
        name=rhel-8-for-x86_64-highavailability-rpms
        baseurl=http://55.55.157.253/rhel-8-for-x86_64-highavailability-rpms
        enabled=1
        gpgcheck=0

        [ansible-2.9-for-rhel-8-x86_64-rpms]
        name=ansible-2.9-for-rhel-8-x86_64-rpms
        baseurl=http://55.55.157.253/ansible-2.9-for-rhel-8-x86_64-rpms
        enabled=1
        gpgcheck=0

        [satellite-tools-6.5-for-rhel-8-x86_64-rpms]
        name=satellite-tools-6.5-for-rhel-8-x86_64-rpms
        baseurl=http://55.55.157.253/satellite-tools-6.5-for-rhel-8-x86_64-rpms
        enabled=1
        gpgcheck=0

        [openstack-16.1-for-rhel-8-x86_64-rpms]
        name=openstack-16.1-for-rhel-8-x86_64-rpms
        baseurl=http://55.55.157.253/openstack-16.1-for-rhel-8-x86_64-rpms
        enabled=1
        gpgcheck=0

        [fast-datapath-for-rhel-8-x86_64-rpms]
        name=fast-datapath-for-rhel-8-x86_64-rpms
        baseurl=http://55.55.157.253/fast-datapath-for-rhel-8-x86_64-rpms
        enabled=1
        gpgcheck=0
        EOF

        echo 'hk!234' | passwd --stdin root
        dnf install -y sysstat vim bash-completion tcpdump

        # ZAP Disk : /dev/vdb nova instance data partition
        if [[ "$(hostname)" =~ "comp" ]]; then
          echo "Number of disks detected: $(lsblk -no NAME,TYPE,MOUNTPOINT | grep "disk" | awk '{print $1}' | wc -l)"
          for DEVICE in `lsblk -no NAME,TYPE,MOUNTPOINT | grep "disk" | awk '{print $1}'`
          do
            ROOTFOUND=0
            echo "Checking /dev/${DEVICE}..."
            echo "Number of partitions on /dev/${DEVICE}: $(expr $(lsblk -n /dev/${DEVICE} | awk '{print $7}' | wc -l) - 1)"
            for MOUNTS in `lsblk -n /dev/${DEVICE} | awk '{print $7}'`
            do
              if [[ "$MOUNTS" = "/" ]]
              then
                ROOTFOUND=1
              fi
            done
            if [[ $ROOTFOUND = 0 ]]
            then
              echo "Root not found in /dev/${DEVICE}"
              echo "Wiping disk /dev/${DEVICE}"
              sgdisk -Z /dev/${DEVICE}
              sgdisk -g /dev/${DEVICE}
            else
              echo "Root found in /dev/${DEVICE}"
            fi
          done
        fi

        if [[ "$(hostname)" =~ "comp" ]]; then
        # LVM parted
                 parted -s /dev/vdb mklabel gpt
                 parted -s /dev/vdb mkpart primary 0 100%
                 pvcreate /dev/vdb1
                 vgcreate vg-compute /dev/vdb1
                 lvcreate -y -l 100%FREE -n hostvolume vg-compute
                 mkfs.xfs -L hostvolume /dev/vg-compute/hostvolume
                 echo "/dev/vg-compute/hostvolume /var/lib/nova/instances xfs defaults,_netdev 0 0" >> /etc/fstab
                 mount -a
                 chown -R nova:nova /var/lib/nova/instances
                 restorecon -RF /var/lib/nova/instances
        fi

outputs:
  OS::stack_id:
    value: {get_resource: userdata}

 

 

6. Overcloud templates

6.1 controller.yaml

아래 파일들은 /home/stack/templates/nic-configs/ 에 파일 내용입니다.

heat_template_version: rocky
parameters:
#------------------------------------------------------------------------------------#
  ControlPlaneIp:
    type: string
  ControlPlaneSubnetCidr:
    type: string
  ControlPlaneDefaultRoute:
    type: string
  ControlPlaneStaticRoutes:
    type: json
  ControlPlaneMtu:
    type: number
#------------------------------------------------------------------------------------#
  InternalApiIpSubnet:
    type: string
  InternalApiMtu:
    type: number
  InternalApiInterfaceRoutes:
    type: json
#------------------------------------------------------------------------------------#
  ExternalIpSubnet:
    type: string
  ExternalMtu:
    type: number
  ExternalInterfaceRoutes:
    type: json
  AZ-0-OSC-CP0EC2MetadataIp:
    type: string
  DnsServers: # Override this via parameter_defaults
    type: comma_delimited_list
#------------------------------------------------------------------------------------#
resources:
  OsNetConfigImpl:
    type: OS::Heat::SoftwareConfig
    properties:
      group: script
      config:
        str_replace:
          template:
            get_file: /usr/share/openstack-tripleo-heat-templates/network/scripts/run-os-net-config.sh
          params:
            $network_config:
              network_config:
#------------------------------------------------------------------------------------#
              - type: interface
                name: ens3
                use_dhcp: false
                dns_servers:
                  get_param: DnsServers
                addresses:
                - ip_netmask:
                    list_join:
                    - /
                    - - get_param: ControlPlaneIp
                      - get_param: ControlPlaneSubnetCidr
                routes:
                - ip_netmask: 169.254.169.254/32
                  next_hop:
                    get_param: ControlPlaneDefaultRoute
#------------------------------------------------------------------------------------#
              - type: interface
                name: ens4
                use_dhcp: false
                addresses:
                - ip_netmask:
                    get_param: ExternalIpSubnet
                routes:
                - default: true
                  next_hop: 55.55.152.1
#------------------------------------------------------------------------------------#
              - type: interface
                name: ens5
                use_dhcp: false
                addresses:
                - ip_netmask:
                    get_param: InternalApiIpSubnet
#------------------------------------------------------------------------------------#
outputs:
  OS::stack_id:
    description: The OsNetConfigImpl resource.
    value:
      get_resource: OsNetConfigImpl

 

 

6.2 compute-ovs.yaml

heat_template_version: rocky
parameters:
#------------------------------------------------------------------------------------#
  ControlPlaneIp:
    type: string
  ControlPlaneSubnetCidr:
    type: string
  ControlPlaneDefaultRoute:
    type: string
  ControlPlaneStaticRoutes:
    type: json
  ControlPlaneMtu:
    type: number
#------------------------------------------------------------------------------------#
  InternalApiIpSubnet:
    type: string
  InternalApiMtu:
    type: number
  InternalApiInterfaceRoutes:
    type: json

  AZ-0-OSC-CP0EC2MetadataIp:
    type: string

  DnsServers: # Override this via parameter_defaults
    type: comma_delimited_list
#------------------------------------------------------------------------------------#
resources:
  OsNetConfigImpl:
    type: OS::Heat::SoftwareConfig
    properties:
      group: script
      config:
        str_replace:
          template:
            get_file: /usr/share/openstack-tripleo-heat-templates/network/scripts/run-os-net-config.sh
          params:
            $network_config:
              network_config:
#------------------------------------------------------------------------------------#
              - type: interface
                name: ens3
                use_dhcp: false
                dns_servers:
                  get_param: DnsServers
                addresses:
                - ip_netmask:
                    list_join:
                    - /
                    - - get_param: ControlPlaneIp
                      - get_param: ControlPlaneSubnetCidr
                routes:
                - ip_netmask: 169.254.169.254/32
                  next_hop:
                    get_param: ControlPlaneDefaultRoute
#------------------------------------------------------------------------------------#
              - type: interface
                name: ens4
                use_dhcp: false
                addresses:
                - ip_netmask:
                    get_param: InternalApiIpSubnet
                routes:
                - default: true
                  next_hop: 55.55.155.1    
#------------------------------------------------------------------------------------#
              - type: ovs_bridge
                name: br-service0
                use_dhcp: false
                mtu: 1500
                members:
                  - type: interface
                    name: ens5
                    mtu: 1500
#------------------------------------------------------------------------------------#
outputs:
  OS::stack_id:
    description: The OsNetConfigImpl resource.
    value:
      get_resource: OsNetConfigImpl

 

 

6.3 compute-dpdk.yaml

heat_template_version: rocky
parameters:
#------------------------------------------------------------------------------------#
  ControlPlaneIp:
    type: string
  ControlPlaneSubnetCidr:
    type: string
  ControlPlaneDefaultRoute:
    type: string
  ControlPlaneStaticRoutes:
    type: json
  ControlPlaneMtu:
    type: number
#------------------------------------------------------------------------------------#
  InternalApiIpSubnet:
    type: string
  InternalApiMtu:
    type: number
  InternalApiInterfaceRoutes:
    type: json

  AZ-0-OSC-CP0EC2MetadataIp:
    type: string

  DnsServers: # Override this via parameter_defaults
    type: comma_delimited_list
#------------------------------------------------------------------------------------#
resources:
  OsNetConfigImpl:
    type: OS::Heat::SoftwareConfig
    properties:
      group: script
      config:
        str_replace:
          template:
            get_file: /usr/share/openstack-tripleo-heat-templates/network/scripts/run-os-net-config.sh
          params:
            $network_config:
              network_config:
#------------------------------------------------------------------------------------#
              - type: interface
                name: ens3
                use_dhcp: false
                dns_servers:
                  get_param: DnsServers
                addresses:
                - ip_netmask:
                    list_join:
                    - /
                    - - get_param: ControlPlaneIp
                      - get_param: ControlPlaneSubnetCidr
                routes:
                - ip_netmask: 169.254.169.254/32
                  next_hop:
                    get_param: ControlPlaneDefaultRoute
#------------------------------------------------------------------------------------#
              - type: interface
                name: ens4
                use_dhcp: false
                addresses:
                - ip_netmask:
                    get_param: InternalApiIpSubnet
                routes:
                - default: true
                  next_hop: 55.55.155.1    
#------------------------------------------------------------------------------------#
              - type: ovs_user_bridge
                name: br-dpdkbond0
                use_dhcp: false
                mtu: 1500
                members:
                  - type: ovs_dpdk_bond
                    name: dpdkbond0
                    rx_queue: 2
                    use_dhcp: false
                    mtu: 1500
                    ovs_options: "bond_mode=active-backup other_config:bond-detect-mode=miimon other_config:bond-miimon-interval=100"
                    members:
                      - type: ovs_dpdk_port
                        name: dpdk0
                        members:
                          - type: interface
                            name: ens5
                            mtu: 1500
#------------------------------------------------------------------------------------#
outputs:
  OS::stack_id:
    description: The OsNetConfigImpl resource.
    value:
      get_resource: OsNetConfigImpl

 

 

7. deploy.sh-http

#!/bin/bash

source /home/stack/stackrc

tripleo="/usr/share/openstack-tripleo-heat-templates"
templates="/home/stack/templates"

#exit

starttime=$(date);

time openstack overcloud deploy --templates \
-n ${templates}/network_data.yaml \
-r ${templates}/roles-data.yaml \
-e ${templates}/node-info.yaml \
-e ${tripleo}/environments/sshd-banner.yaml \
-e ${tripleo}/environments/network-isolation.yaml \
-e ${tripleo}/environments/services/neutron-ovs.yaml \
-e ${tripleo}/environments/services/cinder-backup.yaml \
-e ${tripleo}/environments/host-config-and-reboot.yaml \
-e ${tripleo}/environments/disable-swift.yaml \
-e ~/containers-prepare-parameter.yaml \
-e ${templates}/enviroments/1-commons-parameters.yaml \
-e ${templates}/enviroments/2-network-environment.yaml \
-e ${templates}/enviroments/3-storage-environment.yaml \
-e ${templates}/enviroments/4-controller-fencing.yaml \
-e ${templates}/enviroments/10-endpoint.yaml \
-e ${templates}/enviroments/10-neutron-custom-configs.yaml \
-e ${templates}/enviroments/10-nova-custom-configs.yaml \
-e ${templates}/enviroments/10-telemetry-custom-configs.yaml \
-e ${templates}/enviroments/21-os-extraconfigs.yaml \
-e ${templates}/enviroments/31-ovs-dpdk-sriov.yaml \
-e ${templates}/extraconfig/postconfig.yaml \
-e ${templates}/extraconfig/32-extra-firewallrule.yaml \
-e ${templates}/enviroments/41-disable-swift.yaml \
-e ${templates}/enviroments/42-disable-ceph.yaml \
-e ${templates}/enviroments/99-server-blacklist.yaml 

echo $starttime;
date
728x90