Rate This Document
Findability
Accuracy
Completeness
Readability

Configuring the ironic-conductor Service

Perform the following operations on the baremetal node.

  1. Open the /etc/ironic/ironic.conf file.
    vi /etc/ironic/ironic.conf
  2. Set HOST_IP to the IP address of the ironic-conductor host.
    1
    2
    [DEFAULT]
    my_ip = <HOST_IP>
    

    HOST_IP indicates the IP address of the baremetal node where the ironic-conductor subservice is located, which is described in Table 3. In this document, the IP address is 192.168.101.2.

  3. Configure the database location.
    1
    2
    3
    4
    [database]
    # The SQLAlchemy connection string used to connect to the
    # database (string value)
    connection = mysql+pymysql://ironic:PASSWORD@controller/ironic?charset=utf8
    
    • In this document, the ironic-conductor and ironic-api subservices are deployed on the same node. Therefore, you only need to perform the configuration once. If they are deployed separately, refer to the ironic-api service configuration.
    • In this document, all passwords are represented as PASSWORD. Use the actual password during the operation. Replace the PASSWORD with the password of the Ironic database.
  4. Configure the ironic-conductor subservice to use the RabbitMQ message queue.
    1
    2
    [DEFAULT]
    transport_url = rabbit://RPC_USER:RPC_PASSWORD@RPC_HOST:RPC_PORT/
    
    • In this document, the ironic-conductor and ironic-api subservices are deployed on the same node. Therefore, you only need to perform the configuration once. If they are deployed separately, use the RabbitMQ message queue by referring to the ironic-api service configuration.
    • RPC_USER indicates the OpenStack user of the RabbitMQ service, RPC_PASSWORD indicates the password of the RabbitMQ service user, RPC_HOST indicates the management IP address of the node where the RabbitMQ message queue is located, and RPC_PORT indicates the RabbitMQ service port. For details about how to configure RabbitMQ, see Installing RabbitMQ. This document uses transport_url = rabbit://openstack:123456@controller:5672 as an example.
  5. Configure ironic-conductor to use the interaction between JSON RPC and ironic-api. Enable it in the configuration and provide key credentials for authentication.
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    [DEFAULT]
    rpc_transport = json-rpc
     
    [json_rpc]
    # Authentication type to load (string value)
    auth_type = password
     
    # Authentication URL (string value)
    auth_url = http://controller:5000/
     
    # Username (string value)
    username = ironic
     
    # User's password (string value)
    password = PASSWORD
     
    # Project name to scope to (string value)
    project_name = service
     
    # Domain ID containing project (string value)
    project_domain_id = default
     
    # User's domain id (string value)
    user_domain_name = default
    
    • In this document, the ironic-conductor and ironic-api subservices are deployed on the same node. Therefore, you only need to perform the configuration once. If they are deployed separately, refer to the configuration of interaction between the ironic-api and ironic-conductor subservices.
    • In this document, all passwords are represented as PASSWORD. Use the actual password during the operation. Replace PASSWORD with the password of the Ironic database described in Creating a BMS Database.
  6. Set api_url.
    1
    2
    [conductor]
    api_url = http://${IRONIC_API_IP}:${IRONIC_API_PORT}
    
    • IRONIC_API_IP indicates the service IP address of the node where the ironic-api service is deployed. In this example, the IP address is 192.168.101.2.
    • IRONIC_API_PORT indicates the listening port number of the ironic-api service. The default value is 6385.
  7. Configure credentials for the ironic-conductor subservice to access other OpenStack services.
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    [neutron]
    auth_type = password
    auth_url = http://controller:5000/
    username = ironic
    password = PASSWORD
    project_name = service
    project_domain_id = default
    user_domain_id = default
    cafile = /opt/stack/data/ca-bundle.pem
    region_name = RegionOne
    valid_interfaces = public
     
    [glance]
    region_name = RegionOne
    cafile = /opt/stack/data/ca-bundle.pem
    project_domain_id = default
    user_domain_id = default
    project_name = service
    password = PASSWORD
    username = ironic
    auth_url = http://controller:5000/v3/
    auth_type = password
     
    [swift]
    region_name = RegionOne
    cafile = /opt/stack/data/ca-bundle.pem
    project_domain_id = default
    user_domain_id = default
    project_name = service
    password = PASSWORD
    username = ironic
    auth_url = http://controller/v3/
    auth_type = password
     
    [cinder]
    region_name = RegionOne
    cafile = /opt/stack/data/ca-bundle.pem
    project_domain_id = default
    user_domain_id = default
    project_name = service
    password = PASSWORD
    username = ironic
    auth_url = http://controller:5000/v3/
    auth_type = password
     
    [service_catalog]
    region_name = RegionOne
    cafile = /opt/stack/data/ca-bundle.pem
    project_domain_id = default
    user_domain_id = default
    project_name = service
    password = PASSWORD
    username = ironic
    auth_url = http://controller:5000/v3/
    auth_type = password
    

    In this document, all passwords are represented as PASSWORD. Use the actual password during the operation. Replace PASSWORD with the password of the ironic user described in Creating a BMS Database.

  8. Set the ironic-conductor deployment configuration.
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    [agent]
    deploy_logs_collect = always
    deploy_logs_storage_backend = local
    deploy_logs_local_path = /var/log/ironic/deploy
     
    [deploy]
    erase_devices_priority = 0
    default_boot_option = local
    default_boot_mode = bios
     
    [neutron]
    port_setup_delay = 15
    
  9. Press Esc, type :wq!, and press Enter to save the file and exit.
  10. Restart the ironic-conductor subservice.
    1
    2
    systemctl restart openstack-ironic-conductor
    systemctl status openstack-ironic-conductor