Oracle® Solaris에서 OpenStack(Kilo) 설치 및 구성

인쇄 보기 종료

업데이트 날짜: 2016년 6월
 
 

Ironic을 설치 및 구성하는 방법

시작하기 전에

Ironic을 나머지 OpenStack 구성요소와 함께 배치하는 경우 먼저 핵심 구성요소를 구성해야 합니다. 최소한, Ironic을 작동하기 전에 Keystone 및 Glance 구성을 완료해야 합니다.

마찬가지로, Ironic의 데이터베이스가 설정되었는지 확인합니다. 이 절차에서는 그림 1의 3노드 참조 아키텍처를 따르며, 이 데이터베이스는 나머지 OpenStack 데이터베이스와 함께 컨트롤러 노드에 설정됩니다.

  1. Ironic 데이터베이스를 만듭니다.
    1. 컨트롤러 관리자 노드에 대한 전역 셸 변수를 설정합니다.
      controller# export CONTROLLER_ADMIN_NODE=controller-node

      여기서 controller-node는 컨트롤러의 IP 주소 또는 호스트 이름입니다. 변수 설정에 대한 자세한 내용은 호스트 이름, 변수 및 암호 준비를 참조하십시오.

    2. 다음 명령을 사용하여 데이터베이스를 만듭니다.
      controller# mysql -u root -p
      Enter password: MySQL-root-password
      mysql> create database ironic default character set utf8 default collate utf8_general_ci;
      mysql> grant all privileges on ironic.* to 'ironic'@'$CONTROLLER_ADMIN_NODE' identified by 'service-password';
      mysql> flush privileges;
      mysql> quit
  2. OpenStack Ironic 패키지를 설치합니다.
    # pkg install ironic ironicclient rabbitmq
    # pkg update stevedore stevedore-27
  3. AI 서버와 관리 도구를 설치합니다.

    동일한 명령을 사용하여 AI 서버 패키지를 Ironic과 함께 로컬에 설치할지, 다른 호스트에 원격으로 설치할지 결정합니다.

    # pkg install pkg:/install/installadm
  4. AI가 원격에 위치한 경우 해당 서버에 Ironic 사용자를 구성합니다.
    remote-AI# useradd -d /var/lib/ironic -m -g 88 -u 88 \
       -P "Install Service Management" ironic
    remote-AI# passwd ironic
    New Password: password
    Re-enter new Password: password
    

    주 -  AI가 Ironic과 함께 로컬에 설치된 경우 Ironic 설치 프로세스에서 자동으로 시스템에 ironic 사용자를 만듭니다.
  5. Ironic 사용자의 SSH 키를 만들고 관리합니다.
    • AI가 Ironic과 함께 로컬에 있는 경우 해당 시스템에서 다음 명령을 실행합니다.
      ironic-localhost# su - ironic
      ironic-localhost# mkdir /var/lib/ironic/.ssh
      ironic-localhost# ssh-keygen -N '' -t rsa \
         -f /var/lib/ironic/.ssh/id_rsa
      ironic-localhost# cat /var/lib/ironic/.ssh/id_rsa.pub > \
         /var/lib/ironic/.ssh/authorized_keys
    • AI가 원격에 위치한 경우 다음 단계를 수행합니다.
      1. 원격 AI에서 다음 명령을 실행합니다.
        remote-AI# su - ironic
        remote-AI# mkdir /var/lib/ironic/.ssh
        remote-AI# ssh-keygen -N '' -t rsa \
           -f /var/lib/ironic/.ssh/id_rsa
        remote-AI# cat /var/lib/ironic/.ssh/id_rsa.pub > \
           /var/lib/ironic/.ssh/authorized_keys
      2. Ironic 호스트에서 다음 명령을 실행합니다.
        ironic-localhost# mkdir /var/lib/ironic/.ssh
        ironic-localhost# scp ironic@AI-server:~/.ssh/id_rsa /var/lib/ironic/.ssh
        ironic-localhost# scp ironic@AI-server:~/.ssh/id_rsa.pub /var/lib/ironic/.ssh
        ironic-localhost# cat /var/lib/ironic/.ssh/id_rsa.pub > \
           /var/lib/ironic/.ssh/authorized_keys
        ironic-localhost# chown -R ironic:ironic /var/lib/ironic/.ssh

        여기서 AI-server는 AI 서버의 IP 주소 또는 호스트 이름일 수 있습니다.

  6. /etc/ironic/ironic.conf 파일을 편집합니다.

    파일에서 특정 매개변수의 구성과 관련하여 다음 사항을 고려하십시오.

    auth_strategy

    Ironic을 독립형 구성요소로 사용하는 경우 [DEFAULT] 섹션에서 noauth를 지정합니다. Ironic을 다른 OpenStack 구성요소와 함께 배치하는 경우 keystone을 지정합니다.

    server

    자동 설치 프로그램(AI)이 Ironic과 함께 로컬에 있는 경우 [ai] 섹션에서 localhost를 지정합니다. AI가 원격에 있는 경우 해당 서버의 IP 주소 또는 호스트 이름을 지정합니다.

    connection

    [database] 섹션에서 MySQL 데이터베이스에 대한 연결을 지정합니다.

    glance_host

    auth_strategy 매개변수가 keystone으로 설정된 경우 glance 섹션에서 Glance 서버의 IP 주소 또는 호스트 이름을 지정합니다.

    glance_api_servers

    또한 glance 섹션에서 호스트 이름 또는 IP 주소와 함께 해당 포트 번호를 지정합니다(예: 192.168.0.150:9292). localhost를 지정하지 마십시오.

    다음 샘플 파일은 Ironic이 작동하는 데 필요한 모든 매개변수 구성을 안내하는 데 사용됩니다. 샘플 파일에서 glance-serverIP 변수는 Glance 서버의 IP 주소 또는 호스트 이름을 나타냅니다.

    [DEFAULT]
    enabled_drivers=solaris
    auth_strategy=설정은 Ironic이 독립형인지 여부에 따라 다릅니다.
    pybasedir = /usr/lib/python2.6/vendor-packages/ironic
    bindir = /usr/lib/ironic
    host = ironic
    
    [ai]
    server=설정은 AI가 로컬 또는 원격인지에 따라 다릅니다.
    username=ironic
    port=22
    timeout=10
    ssh_key_file=/var/lib/ironic/.ssh/id_rsa
    deploy_interval=30
    
    [api]
    port=6385
    
    [conductor]
    api_url=http://localhost:6385/
    heartbeat_timeout=60
    heartbeat_interval=60
    sync_power_state_interval=300
    check_provision_state_interval=120
    
    [database]
    connection= mysql://ironic:service-password@$CONTROLLER_ADMIN_NODE/ironic
    
    [solaris_ipmi]
    imagecache_dirname = /var/lib/ironic/images
    imagecache_lock_timeout = 60
    
    [glance]
    glance_host = glance-serverIP
    glance_port = 9292
    glance_protocol = http
    glance_api_servers = glance-serverIP:port
    auth_strategy = Ironic이 Keystone을 사용하여 Glance와 상호 작용하도록 하려면 keystone을 지정합니다.
    
    [keystone_authtoken]DEFAULT에서 auth_strategy = keystone이면 구성합니다.
    auth_host = localhost
    auth_uri = http://$CONTROLLER_ADMIN_NODE:5000/v2.0
    identity_uri = http://$CONTROLLER_ADMIN_NODE:35357
    admin_user = ironic
    admin_password = service-password
    admin_tenant_name = tenant
    signing_dir = $state_path/keystone-signing
    
    [neutron]
    auth_strategy = Ironic이 Keystone을 사용하여 Neutron과 상호 작용하도록 하려면 keystone을 지정합니다.
    
    [oslo_messaging_rabbit]
    rabbit_host=$CONTROLLER_ADMIN_NODE
    
  7. Ironic의 SMF 서비스가 실행 중인지 확인합니다.
    ironic-localhost# svcs -a | grep rabbitmq
    ironic-localhost# svcs -a | grep ironic
    

    Ironic이 독립형 모드인 경우 수동으로 서비스를 사용으로 설정해야 할 수도 있습니다.

    ironic-localhost# svcadm enable rabbitmq
    ironic-localhost# svcadm enable ironic-db
    ironic-localhost# svcadm enable ironic-api ironic-conductor
    
  8. (옵션) 명령줄 유틸리티를 테스트합니다.
    1. Ironic에 대한 전역 셸 변수를 설정합니다.
      • auth_strategynoauth로 설정된 경우 다음과 같이 셸 변수를 설정합니다.
        ironic-localhost# export OS_AUTH_TOKEN=fake-token
        ironic-localhost# export IRONIC_URL=http://localhost:6385
      • auth_strategykeystone으로 설정된 경우 다음과 같이 셸 변수를 설정합니다.

        Keystone 서비스가 Ironic과 다른 노드에 있는 경우 OS_AUTH_URL에 대해 Keystone이 설치된 IP 주소 또는 호스트 이름을 지정합니다.

        ironic-localhost# export OS_AUTH_URL=http://$CONTROLLER_ADMIN_NODE:5000/v2.0
        ironic-localhost# export OS_PROJECT_NAME=service
        ironic-localhost# export OS_USERNAME=ironic
        ironic-localhost# export OS_PASSWORD=service-password
        ironic-localhost# export IRONIC_URL=http://localhost:6385/
    2. Ironic 명령줄을 실행합니다.
      # ironic driver-list
      +---------------------+----------------+
      | Supported driver(s) | Active host(s) |
      +---------------------+----------------+
      | solaris             | ironic         |
      +---------------------+----------------+

      현재 solaris가 Ironic에서 유일하게 사용으로 설정되고 테스트된 드라이버입니다. 그러나 /etc/ironic/ironic.conf 파일에서 [enabled_drivers] 섹션 아래에 드라이버 이름을 넣으면 목록에 추가할 수 있습니다. 드라이버를 추가한 후에 ironic-apiironic-conductor SMF 서비스를 다시 시작해야 합니다.