Install and configure for openSUSE and SUSE Linux Enterprise

This section describes how to install and configure the Fenix service for openSUSE and SUSE Linux Enterprise Server.

Prerequisites

Before you install and configure the Fenix service, you must create a database, service credentials, and API endpoints.

  1. To create the database, complete these steps:

    • Use the database access client to connect to the database server as the root user:

      $ mysql -u root -p
      
    • Create the fenix database:

      CREATE DATABASE fenix;
      
    • Grant proper access to the fenix database:

      GRANT ALL PRIVILEGES ON fenix.* TO 'fenix'@'localhost' \
        IDENTIFIED BY 'FENIX_DBPASS';
      GRANT ALL PRIVILEGES ON fenix.* TO 'fenix'@'%' \
        IDENTIFIED BY 'FENIX_DBPASS';
      

      Replace FENIX_DBPASS with a suitable password.

    • Exit the database access client.

      exit;
      
  2. Source the admin credentials to gain access to admin-only CLI commands:

    $ . admin-openrc
    
  3. To create the service credentials, complete these steps:

    • Create the fenix user:

      $ openstack user create --domain default --password-prompt fenix
      
    • Add the admin role to the fenix user:

      $ openstack role add --project service --user fenix admin
      
    • Create the Fenix service entities:

      $ openstack service create --name fenix --description "fenix" fenix
      

    Note! In Fenix workflow you may want to have ssh access to all nodes for your Fenix action plug-ins to scp filex and locally execute scripts on those nodes. This means you may want to have the ssh without password configured for Fenix service user.

  4. Create the Fenix service API endpoints:

    $ openstack endpoint create --region RegionOne \
      fenix public http://controller:XXXX/vY/%\(tenant_id\)s
    $ openstack endpoint create --region RegionOne \
      fenix internal http://controller:XXXX/vY/%\(tenant_id\)s
    $ openstack endpoint create --region RegionOne \
      fenix admin http://controller:XXXX/vY/%\(tenant_id\)s
    

Installation

Note! Fenix is currently not included in Linux distributions. You need to clone and install it from source.

$ git clone https://opendev.org/x/fenix
$ cd fenix
$ sudo python setup.py install

Configuration files

Configuration options. All options have default values. Mandatory options are mentioned as those are usually at least the ones needed to be defined to match to the current system.

  • Edit the /etc/fenix/fenix-api.conf file the configure fenix-api

    [DEFAULT]
    
    # Mandatory configuration options
    
    # Host where API is running. default="127.0.0.1"
    host = <hostname>
    # API Port. default=5000
    port = <port>
    # An URL representing the messaging driver to use and its full configuration.
    transport_url = <transport URL>
    
    [keystone_authtoken]
    # OpenStack Identity service URL.
    auth_url = http://127.0.0.1/identity
    # Authentication type
    auth_type = password
    # PEM encoded Certificate Authority to use when verifying HTTPs connections.
    cafile = /opt/stack/data/ca-bundle.pem
    # The Fenix admin project domain.
    project_domain_name = Default
    # The Fenix admin project.
    project_name = admin
    # A domain name the os_username belongs to.
    user_domain_name = Default
    # Fenix admin user password.
    password = admin
    # Fenix user. Must have admin role.
    username = admin
    
  • Edit the /etc/fenix/fenix.conf file the configure fenix-engine

    [DEFAULT]
    
    # Mandatory configuration options
    
    # Host where engine is running. default="127.0.0.1"
    host = <hostname>
    # API Port. default=5000
    port = <port>
    # An URL representing the messaging driver to use and its full configuration.
    transport_url = <transport URL>
    
    # Optional configuration options
    
    # Wait for project reply after message sent to project. default 120
    wait_project_reply = 120
    # Project maintenance reply confirmation time in seconds. default 40
    project_maintenance_reply = 40
    # Project scale in reply confirmation time in seconds. default 60
    project_scale_in_reply = 60
    # Number of live migration retries. default 5
    live_migration_retries = 5
    # How long to wait live migration to be done. default 600
    live_migration_wait_time = 600
    
    [database]
    
    # database connection URL
    connection = mysql+pymysql://fenix:FENIX_DBPASS@controller/fenix
    
    [service_user]
    
    # OpenStack Identity service URL. Default to environmental variable OS_AUTH_URL
    os_auth_url = http://127.0.0.1/identity
    # Fenix user. Must have admin role. Default to environmental variable OS_USERNAME
    os_username = admin
    # Fenix admin user password. Default to environmental variable OS_PASSWORD
    os_password = admin
    # A domain name the os_username belongs to. Default to environmental variable OS_USER_DOMAIN_NAME
    os_user_domain_name = default
    # The Fenix admin project. Default to environmental variable OS_PROJECT_NAME
    os_project_name = admin
    # The Fenix admin project domain. Default to environmental variable OS_PROJECT_DOMAIN_NAME
    os_project_domain_name = default
    

Finalize installation

Start the fenix services and configure them to start when the system boots:

# sudo systemctl enable openstack-fenix-api.service
# sudo systemctl start openstack-fenix-api.service

# sudo systemctl enable openstack-fenix-engine.service
# sudo systemctl start openstack-fenix-engine.service