컨트롤러 노드 설치와 설정

컨트롤러 노드 설치와 설정

선행조건

OpenStack 네트워킹 (neutron) 서비스를 구성하기 전에, 데이터베이스, 서비스 credential, 엔드포인트를 생성해야 합니다.

  1. 데이터베이스를 생성하기 위해 다음 과정을 완료합니다:

    • 데이터베이스 액세스 클라이언트를 사용하여 데이터베이스 서버에 root 사용자로 연결합니다:

      $ mysql -u root -p
      
    • neutron 데이터베이스를 생성합니다:

      CREATE DATABASE neutron;
      
    • neutron 데이터베이스에 적합한 액세스를 부여하고, NEUTRON_DBPASS 를 적절한 암호로 변경합니다:

      GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'localhost' \
        IDENTIFIED BY 'NEUTRON_DBPASS';
      GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'%' \
        IDENTIFIED BY 'NEUTRON_DBPASS';
      
    • 데이터베이스 접속 클라이언트를 종료합니다.

  2. admin credential에 대한 접근 권한을 얻기위해 관리자용 CLI 명령어 source 입력합니다:

    $ source admin-openrc.sh
    
  3. 서비스 credential을 생성하기 위해 다음 작업을 완료합니다:

    • neutron 사용자를 생성합니다:

      $ openstack user create --domain default --password-prompt neutron
      User Password:
      Repeat User Password:
      +-----------+----------------------------------+
      | Field     | Value                            |
      +-----------+----------------------------------+
      | domain_id | default                          |
      | enabled   | True                             |
      | id        | b20a6692f77b4258926881bf831eb683 |
      | name      | neutron                          |
      +-----------+----------------------------------+
      
    • admin 역할을 neutron 사용자에 추가합니다:

      $ openstack role add --project service --user neutron admin
      

      주석

      이 명령어는 출력값이 없습니다.

    • neutron 서비스 엔티티를 생성합니다:

      $ openstack service create --name neutron \
        --description "OpenStack Networking" network
      +-------------+----------------------------------+
      | Field       | Value                            |
      +-------------+----------------------------------+
      | description | OpenStack Networking             |
      | enabled     | True                             |
      | id          | f71529314dab4a4d8eca427e701d209e |
      | name        | neutron                          |
      | type        | network                          |
      +-------------+----------------------------------+
      
  4. 네트워킹 서비스 API 엔드포인트를 생성합니다:

    $ openstack endpoint create --region RegionOne \
      network public http://controller:9696
    +--------------+----------------------------------+
    | Field        | Value                            |
    +--------------+----------------------------------+
    | enabled      | True                             |
    | id           | 85d80a6d02fc4b7683f611d7fc1493a3 |
    | interface    | public                           |
    | region       | RegionOne                        |
    | region_id    | RegionOne                        |
    | service_id   | f71529314dab4a4d8eca427e701d209e |
    | service_name | neutron                          |
    | service_type | network                          |
    | url          | http://controller:9696           |
    +--------------+----------------------------------+
    
    $ openstack endpoint create --region RegionOne \
      network internal http://controller:9696
    +--------------+----------------------------------+
    | Field        | Value                            |
    +--------------+----------------------------------+
    | enabled      | True                             |
    | id           | 09753b537ac74422a68d2d791cf3714f |
    | interface    | internal                         |
    | region       | RegionOne                        |
    | region_id    | RegionOne                        |
    | service_id   | f71529314dab4a4d8eca427e701d209e |
    | service_name | neutron                          |
    | service_type | network                          |
    | url          | http://controller:9696           |
    +--------------+----------------------------------+
    
    $ openstack endpoint create --region RegionOne \
      network admin http://controller:9696
    +--------------+----------------------------------+
    | Field        | Value                            |
    +--------------+----------------------------------+
    | enabled      | True                             |
    | id           | 1ee14289c9374dffb5db92a5c112fc4e |
    | interface    | admin                            |
    | region       | RegionOne                        |
    | region_id    | RegionOne                        |
    | service_id   | f71529314dab4a4d8eca427e701d209e |
    | service_name | neutron                          |
    | service_type | network                          |
    | url          | http://controller:9696           |
    +--------------+----------------------------------+
    

네트워킹 옵션 구성

옵션 1 및 2에 의해 표현되는 두 아키텍처 중 하나를 사용하여 네트워킹 서비스를 배포할 수 있습니다.

옵션 1은 공용 (프로바이더) 네트워크에 대한 인스턴스 연결만을 지원하는 가능한 단순한 아키텍처로 배포합니다. 셀프 서비스 네트워크, 라우터 또는 플로팅 IP 주소가 없습니다. admin 또는 기타 권한이 있는 사용자만 프로바이더 네트워크를 관리할 수 있습니다.

옵션 2는 옵션 1에 셀프 서비스 (사설) 네트워크에 대한 인스턴스 연결을 지원하는 layer-3 서비스를 확장합니다. demo 또는 다른 관리자 권한을 갖지 않은 사용자가 셀프 서비스와 프로바이더 네트워크 간 연결을 제공하는 라우터를 포함한 셀프 서비스 네트워크를 관리할 수 있습니다. 부가적으로, 플로팅 IP 주소는 인터넷과 같은 외부 네트워크로부터 셀프 서비스 네트워크를 사용하여 인스턴스에 대한 연결을 제공합니다.

주석

옵션 2는 또한 인스턴스를 공용 (프로바이더) 네트워크 연결을 지원합니다.

구체적으로 서비스를 구성하기 위해 다음 네트워킹 옵션 중 하나를 선택합니다. 그리고 나서, 메타데이터 에이전트 구성 를 진행한 후 여기로 돌아옵니다.

메타데이터 에이전트 구성

metadata agent 는 인스턴스에 대한 자격 증명과 같은 구성 정보를 제공합니다.

  • /etc/neutron/metadata_agent.ini 파일을 수정하여 다음 작업을 완료합니다:

    • [DEFAULT] 섹션에서 접근 매개변수를 구성합니다:

      [DEFAULT]
      ...
      auth_uri = http://controller:5000
      auth_url = http://controller:35357
      auth_region = RegionOne
      auth_plugin = password
      project_domain_id = default
      user_domain_id = default
      project_name = service
      username = neutron
      password = NEUTRON_PASS
      

      Identity 서비스에서 neutron 사용자의 암호로 NEUTRON_PASS 를 변경합니다.

    • [DEFAULT] 섹션에서 메타데이터 호스트를 구성합니다:

      [DEFAULT]
      ...
      nova_metadata_ip = controller
      
    • [DEFAULT] 섹션에서 메타데이터 프록시 공유 암호를 구성합니다:

      [DEFAULT]
      ...
      metadata_proxy_shared_secret = METADATA_SECRET
      

      메타데이터 프록시에 대한 적합한 암호로 METADATA_SECRET 를 변경합니다.

    • (옵션) 트러블 슈팅을 지원하기 위해, [DEFAULT] 섹션에서 verbose 로깅을 활성화합니다:

      [DEFAULT]
      ...
      verbose = True
      

네트워킹을 사용하는 Compute 구성

  • /etc/nova/nova.conf 파일을 편집하여 다음 작업을 진행합니다:

    • [neutron] 섹션에서 접근 매개변수를 구성하고, 메타데이터 프록시를 활성화하고, 암호를 구성합니다:

      [neutron]
      ...
      url = http://controller:9696
      auth_url = http://controller:35357
      auth_plugin = password
      project_domain_id = default
      user_domain_id = default
      region_name = RegionOne
      project_name = service
      username = neutron
      password = NEUTRON_PASS
      
      service_metadata_proxy = True
      metadata_proxy_shared_secret = METADATA_SECRET
      

      Identity 서비스에서 neutron 사용자의 암호로 NEUTRON_PASS 를 변경합니다.

      메타데이터 프록시에대한 암호로 METADATA_SECRET 를 변경합니다.

설치 마무리

  1. 데이터베이스를 넣어줍니다:

    # su -s /bin/sh -c "neutron-db-manage --config-file /etc/neutron/neutron.conf \
      --config-file /etc/neutron/plugins/ml2/ml2_conf.ini upgrade head" neutron
    

    주석

    스크립트가 완성된 서버와 플러그인이 구성된 파일이 필요하기 때문에 데이터베이스 설치시 네트워킹에 대한 지연이 발생합니다.

  2. Compute API 서비스를 재시작합니다:

    # service nova-api restart
    
  3. 네트워킹 서비스를 재시작합니다.

    두 네트워킹 옵션에 대해서:

    # service neutron-server restart
    # service neutron-plugin-linuxbridge-agent restart
    # service neutron-dhcp-agent restart
    # service neutron-metadata-agent restart
    

    네트워킹 옵션 2에 대해 layer-3 서비스를 재시작합니다:

    # service neutron-l3-agent restart
    
  1. 기본으로 Ubuntu 패키지들은 SQLite 데이터베이스를 생성합니다.

    해당 구성은 SQL 데이터베이스 서버를 사용하므로, 해당 SQLite 데이터베이스 파일을 삭제할 수 있습니다:

    # rm -f /var/lib/neutron/neutron.sqlite
    
Creative Commons Attribution 3.0 License

Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.