차이
문서의 선택한 두 판 사이의 차이를 보여줍니다.
| 양쪽 이전 판 이전 판 다음 판 | 이전 판 | ||
| redhat_openstack_16.1_installation [2022/02/08 04:36] – koov | redhat_openstack_16.1_installation [2022/02/08 12:47] (현재) – [deploy.sh] koov | ||
|---|---|---|---|
| 줄 1: | 줄 1: | ||
| ====== RedHat Openstack 16.1 Installation ====== | ====== RedHat Openstack 16.1 Installation ====== | ||
| + | ===== Undercloud ===== | ||
| + | ==== deploy.sh ==== | ||
| + | <WRAP prewrap> | ||
| + | <code bash> | ||
| + | #!/bin/bash | ||
| + | source / | ||
| + | date=`date " | ||
| + | rm -rf ~/ | ||
| + | |||
| + | time openstack overcloud deploy --templates \ | ||
| + | -n / | ||
| + | -r / | ||
| + | -e / | ||
| + | -e / | ||
| + | -e / | ||
| + | -e / | ||
| + | -e / | ||
| + | -e / | ||
| + | -e / | ||
| + | -e / | ||
| + | -e / | ||
| + | --ntp-server 192.168.10.1 \ | ||
| + | --libvirt-type kvm \ | ||
| + | --log-file / | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | ==== render.sh ==== | ||
| + | <WRAP prewrap> | ||
| + | <code bash> | ||
| + | #!/bin/bash | ||
| + | cd / | ||
| + | ./ | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | ==== network_data.yaml ==== | ||
| + | <WRAP prewrap> | ||
| + | <code yaml> | ||
| + | - name: Storage | ||
| + | vip: true | ||
| + | vlan: 30 | ||
| + | name_lower: storage | ||
| + | ip_subnet: ' | ||
| + | allocation_pools: | ||
| + | mtu: 1500 | ||
| + | - name: StorageMgmt | ||
| + | name_lower: storage_mgmt | ||
| + | vip: true | ||
| + | vlan: 40 | ||
| + | ip_subnet: ' | ||
| + | allocation_pools: | ||
| + | mtu: 1500 | ||
| + | - name: InternalApi | ||
| + | name_lower: internal_api | ||
| + | vip: true | ||
| + | vlan: 20 | ||
| + | ip_subnet: ' | ||
| + | allocation_pools: | ||
| + | mtu: 1500 | ||
| + | - name: Tenant | ||
| + | vip: false # Tenant network does not use VIPs | ||
| + | name_lower: tenant | ||
| + | vlan: 50 | ||
| + | ip_subnet: ' | ||
| + | allocation_pools: | ||
| + | mtu: 1500 | ||
| + | - name: External | ||
| + | vip: true | ||
| + | name_lower: external | ||
| + | ip_subnet: ' | ||
| + | allocation_pools: | ||
| + | gateway_ip: ' | ||
| + | mtu: 1500 | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | ==== roles_data.yaml ==== | ||
| + | <WRAP prewrap> | ||
| + | <code bash> | ||
| + | openstack overcloud roles generate \ | ||
| + | --roles-path / | ||
| + | -o / | ||
| + | Controller Compute ComputeAlt BlockStorage ObjectStorage CephStorage | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | <WRAP prewrap> | ||
| + | <code yaml> | ||
| + | ############################################################################### | ||
| + | # File generated by TripleO | ||
| + | ############################################################################### | ||
| + | ############################################################################### | ||
| + | # Role: Controller | ||
| + | ############################################################################### | ||
| + | - name: Controller | ||
| + | description: | ||
| + | Controller role that has all the controler services loaded and handles | ||
| + | Database, Messaging and Network functions. | ||
| + | CountDefault: | ||
| + | tags: | ||
| + | - primary | ||
| + | - controller | ||
| + | networks: | ||
| + | External: | ||
| + | subnet: external_subnet | ||
| + | InternalApi: | ||
| + | subnet: internal_api_subnet | ||
| + | Storage: | ||
| + | subnet: storage_subnet | ||
| + | StorageMgmt: | ||
| + | subnet: storage_mgmt_subnet | ||
| + | Tenant: | ||
| + | subnet: tenant_subnet | ||
| + | # For systems with both IPv4 and IPv6, you may specify a gateway network for | ||
| + | # each, such as [' | ||
| + | default_route_networks: | ||
| + | HostnameFormatDefault: | ||
| + | # Deprecated & backward-compatible values (FIXME: Make parameters consistent) | ||
| + | # Set uses_deprecated_params to True if any deprecated params are used. | ||
| + | uses_deprecated_params: | ||
| + | deprecated_param_extraconfig: | ||
| + | deprecated_param_flavor: | ||
| + | deprecated_param_image: | ||
| + | deprecated_nic_config_name: | ||
| + | update_serial: | ||
| + | ServicesDefault: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | ############################################################################### | ||
| + | # Role: Compute | ||
| + | ############################################################################### | ||
| + | - name: Compute | ||
| + | description: | ||
| + | Basic Compute Node role | ||
| + | CountDefault: | ||
| + | # Create external Neutron bridge (unset if using ML2/OVS without DVR) | ||
| + | tags: | ||
| + | - external_bridge | ||
| + | networks: | ||
| + | InternalApi: | ||
| + | subnet: internal_api_subnet | ||
| + | Tenant: | ||
| + | subnet: tenant_subnet | ||
| + | Storage: | ||
| + | subnet: storage_subnet | ||
| + | HostnameFormatDefault: | ||
| + | RoleParametersDefault: | ||
| + | TunedProfileName: | ||
| + | # Deprecated & backward-compatible values (FIXME: Make parameters consistent) | ||
| + | # Set uses_deprecated_params to True if any deprecated params are used. | ||
| + | # These deprecated_params only need to be used for existing roles and not for | ||
| + | # composable roles. | ||
| + | uses_deprecated_params: | ||
| + | deprecated_param_image: | ||
| + | deprecated_param_extraconfig: | ||
| + | deprecated_param_metadata: | ||
| + | deprecated_param_scheduler_hints: | ||
| + | deprecated_param_ips: | ||
| + | deprecated_server_resource_name: | ||
| + | deprecated_nic_config_name: | ||
| + | update_serial: | ||
| + | ServicesDefault: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | - OS:: | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | ==== undercloud.conf ==== | ||
| + | |||
| + | <WRAP prewrap> | ||
| + | <code properties> | ||
| + | [DEFAULT] | ||
| + | # 배포/ | ||
| + | clean_nodes = true | ||
| + | # 배포 후 임시파일 정리 여부(디버깅에 필요한경우 false) | ||
| + | #cleanup = true | ||
| + | # 컨테이너 이미지 환경설정 | ||
| + | container_images_file = / | ||
| + | # 비보안 컨테이너 레지스트리 목록 | ||
| + | # | ||
| + | # telemetry 서비스 사용 여부 | ||
| + | enable_telemetry = false | ||
| + | local_interface = enp2s0 | ||
| + | local_ip = 192.168.10.1/ | ||
| + | #local_mtu = 1500 | ||
| + | local_subnet = ctlplane-subnet | ||
| + | # 오버클라우드 배포용 DNS 도메인명. 오버클라우드 배포시 CloudDomain 매개변수를 동일하게 맞춰야함 | ||
| + | # | ||
| + | |||
| + | subnets = ctlplane-subnet | ||
| + | undercloud_admin_host = 192.168.10.3 | ||
| + | undercloud_hostname = director.osp.kepri | ||
| + | undercloud_public_host = 192.168.10.2 | ||
| + | undercloud_ntp_servers = 192.168.10.250 | ||
| + | undercloud_timezone = ' | ||
| + | |||
| + | [ctlplane-subnet] | ||
| + | cidr = 192.168.10.0/ | ||
| + | dhcp_end = 192.168.10.249 | ||
| + | dhcp_start = 192.168.10.230 | ||
| + | gateway = 192.168.10.1 | ||
| + | inspection_iprange = 192.168.10.210, | ||
| + | masquerade = true | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | ==== containers-prepare-parameter.yaml ==== | ||
| + | |||
| + | <WRAP prewrap> | ||
| + | <code yaml> | ||
| + | # Generated with the following on 2022-02-07T15: | ||
| + | # | ||
| + | # | ||
| + | # | ||
| + | |||
| + | parameter_defaults: | ||
| + | ContainerImagePrepare: | ||
| + | - push_destination: | ||
| + | set: | ||
| + | ceph_alertmanager_image: | ||
| + | ceph_alertmanager_namespace: | ||
| + | ceph_alertmanager_tag: | ||
| + | ceph_grafana_image: | ||
| + | ceph_grafana_namespace: | ||
| + | ceph_grafana_tag: | ||
| + | ceph_image: rhceph-4-rhel8 | ||
| + | ceph_namespace: | ||
| + | ceph_node_exporter_image: | ||
| + | ceph_node_exporter_namespace: | ||
| + | ceph_node_exporter_tag: | ||
| + | ceph_prometheus_image: | ||
| + | ceph_prometheus_namespace: | ||
| + | ceph_prometheus_tag: | ||
| + | ceph_tag: latest | ||
| + | name_prefix: | ||
| + | name_suffix: | ||
| + | namespace: registry.redhat.io/ | ||
| + | neutron_driver: | ||
| + | rhel_containers: | ||
| + | tag: ' | ||
| + | tag_from_label: | ||
| + | ContainerImageRegistryCredentials: | ||
| + | registry.redhat.io: | ||
| + | userid@domain.co.kr: | ||
| + | ContainerImageRegistryLogin: | ||
| + | |||
| + | </ | ||
| + | </ | ||
| + | |||
| + | ==== nodes.json ==== | ||
| + | <WRAP prewrap> | ||
| + | <code json> | ||
| + | { | ||
| + | " | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | ], | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | ], | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | ], | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | ], | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | ], | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | } | ||
| + | ] | ||
| + | } | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | ===== template ===== | ||
| + | |||
| + | ==== network-environment.yaml ==== | ||
| + | <WRAP prewrap> | ||
| + | <code yaml> | ||
| + | resource_registry: | ||
| + | OS:: | ||
| + | ../ | ||
| + | OS:: | ||
| + | ../ | ||
| + | parameter_defaults: | ||
| + | StorageNetCidr: | ||
| + | StorageAllocationPools: | ||
| + | StorageNetworkVlanID: | ||
| + | StorageMgmtNetCidr: | ||
| + | StorageMgmtAllocationPools: | ||
| + | StorageMgmtNetworkVlanID: | ||
| + | InternalApiNetCidr: | ||
| + | InternalApiAllocationPools: | ||
| + | InternalApiNetworkVlanID: | ||
| + | TenantNetCidr: | ||
| + | TenantAllocationPools: | ||
| + | TenantNetworkVlanID: | ||
| + | TenantNetPhysnetMtu: | ||
| + | ExternalNetCidr: | ||
| + | ExternalAllocationPools: | ||
| + | ExternalInterfaceDefaultRoute: | ||
| + | DnsServers: [' | ||
| + | NeutronNetworkType: | ||
| + | NeutronNetworkVLANRanges: | ||
| + | BondInterfaceOvsOptions: | ||
| + | NeutronEnableDVR: | ||
| + | </ | ||
| + | </ | ||
| ===== NIC Config ===== | ===== NIC Config ===== | ||
| 줄 170: | 줄 727: | ||
| ######################################################################### | ######################################################################### | ||
| resources: | resources: | ||
| + | |||
| + | MinViableMtu: | ||
| + | # This resource resolves the minimum viable MTU for interfaces, bonds and | ||
| + | # bridges that carry multiple VLANs. Each VLAN may have different MTU. The | ||
| + | # bridge, bond or interface must have an MTU to allow the VLAN with the | ||
| + | # largest MTU. | ||
| + | type: OS:: | ||
| + | properties: | ||
| + | type: number | ||
| + | value: | ||
| + | yaql: | ||
| + | expression: $.data.max() | ||
| + | data: | ||
| + | - {get_param: ControlPlaneMtu} | ||
| + | - {get_param: StorageMtu} | ||
| + | - {get_param: InternalApiMtu} | ||
| + | - {get_param: TenantMtu} | ||
| + | |||
| OsNetConfigImpl: | OsNetConfigImpl: | ||
| type: OS:: | type: OS:: | ||
| 줄 424: | 줄 999: | ||
| description: | description: | ||
| type: comma_delimited_list | type: comma_delimited_list | ||
| + | ######################################################################### | ||
| resources: | resources: | ||
| + | |||
| + | MinViableMtu: | ||
| + | # This resource resolves the minimum viable MTU for interfaces, bonds and | ||
| + | # bridges that carry multiple VLANs. Each VLAN may have different MTU. The | ||
| + | # bridge, bond or interface must have an MTU to allow the VLAN with the | ||
| + | # largest MTU. | ||
| + | type: OS:: | ||
| + | properties: | ||
| + | type: number | ||
| + | value: | ||
| + | yaql: | ||
| + | expression: $.data.max() | ||
| + | data: | ||
| + | - {get_param: ControlPlaneMtu} | ||
| + | - {get_param: StorageMtu} | ||
| + | - {get_param: InternalApiMtu} | ||
| + | - {get_param: TenantMtu} | ||
| + | |||
| OsNetConfigImpl: | OsNetConfigImpl: | ||
| type: OS:: | type: OS:: | ||
| 줄 487: | 줄 1081: | ||
| list_concat_unique: | list_concat_unique: | ||
| - get_param: StorageInterfaceRoutes | - get_param: StorageInterfaceRoutes | ||
| - | ################ | ||
| - | - type: vlan | ||
| - | mtu: | ||
| - | get_param: StorageMgmtMtu | ||
| - | vlan_id: | ||
| - | get_param: StorageMgmtNetworkVlanID | ||
| - | addresses: | ||
| - | - ip_netmask: | ||
| - | get_param: StorageMgmtIpSubnet | ||
| - | routes: | ||
| - | list_concat_unique: | ||
| - | - get_param: StorageMgmtInterfaceRoutes | ||
| ################ | ################ | ||
| - type: vlan | - type: vlan | ||