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.
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;
Source the
admin
credentials to gain access to admin-only CLI commands:$ . admin-openrc
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 thefenix
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.
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 = adminEdit 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