# Install and configure controller node on Debian

This section describes how to install and configure the Shared File Systems service, code-named manila, on the controller node that runs a Debian distribution. This service requires at least one additional share node that manages file storage back ends.

## Prerequisites

Before you install and configure the Shared File Systems 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 manila database:

         CREATE DATABASE manila;

   - Grant proper access to the `manila` database:

         GRANT ALL PRIVILEGES ON manila.* TO 'manila'@'localhost' \
           IDENTIFIED BY 'MANILA_DBPASS';
         GRANT ALL PRIVILEGES ON manila.* TO 'manila'@'%' \
           IDENTIFIED BY 'MANILA_DBPASS';

     Replace `MANILA_DBPASS` with a suitable password.

   - Exit the database access client.

2. Source the `admin` credentials to gain access to admin CLI commands:

       $ . admin-openrc.sh

3. To create the service credentials, complete these steps:

   - Create a `manila` user:

         $ openstack user create --domain default --password-prompt manila
         User Password:
         Repeat User Password:
         +---------------------+----------------------------------+
         | Field               | Value                            |
         +---------------------+----------------------------------+
         | domain_id           | e0353a670a9e496da891347c589539e9 |
         | enabled             | True                             |
         | id                  | 83a3990fc2144100ba0e2e23886d8acc |
         | name                | manila                           |
         | options             | {}                               |
         | password_expires_at | None                             |
         +---------------------+----------------------------------+

   - Add the `admin` role to the `manila` user:

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

     Note

     This command provides no output.

   - Create the `manila` and `manilav2` service entities:

         $ openstack service create --name manila \
           --description "OpenStack Shared File Systems" share
           +-------------+----------------------------------+
           | Field       | Value                            |
           +-------------+----------------------------------+
           | description | OpenStack Shared File Systems    |
           | enabled     | True                             |
           | id          | 82378b5a16b340aa9cc790cdd46a03ba |
           | name        | manila                           |
           | type        | share                            |
           +-------------+----------------------------------+

         $ openstack service create --name manilav2 \
           --description "OpenStack Shared File Systems V2" sharev2
           +-------------+----------------------------------+
           | Field       | Value                            |
           +-------------+----------------------------------+
           | description | OpenStack Shared File Systems V2 |
           | enabled     | True                             |
           | id          | 30d92a97a81a4e5d8fd97a32bafd7b88 |
           | name        | manilav2                         |
           | type        | sharev2                          |
           +-------------+----------------------------------+

     Note

     The Shared File Systems services require two service entities.

4. Create the Shared File Systems service API endpoints:

       $ openstack endpoint create --region RegionOne \
         sharev2 public http://controller:8786/v2
         +--------------+----------------------------------+
         | Field        | Value                            |
         +--------------+----------------------------------+
         | enabled      | True                             |
         | id           | d63cc0d358da4ea680178657291eddc1 |
         | interface    | public                           |
         | region       | RegionOne                        |
         | region_id    | RegionOne                        |
         | service_id   | 30d92a97a81a4e5d8fd97a32bafd7b88 |
         | service_name | manilav2                         |
         | service_type | sharev2                          |
         | url          | http://controller:8786/v2        |
         +--------------+----------------------------------+

       $ openstack endpoint create --region RegionOne \
         sharev2 internal http://controller:8786/v2
         +--------------+----------------------------------+
         | Field        | Value                            |
         +--------------+----------------------------------+
         | enabled      | True                             |
         | id           | afc86e5f50804008add349dba605da54 |
         | interface    | internal                         |
         | region       | RegionOne                        |
         | region_id    | RegionOne                        |
         | service_id   | 30d92a97a81a4e5d8fd97a32bafd7b88 |
         | service_name | manilav2                         |
         | service_type | sharev2                          |
         | url          | http://controller:8786/v2        |
         +--------------+----------------------------------+

       $ openstack endpoint create --region RegionOne \
         sharev2 admin http://controller:8786/v2
         +--------------+----------------------------------+
         | Field        | Value                            |
         +--------------+----------------------------------+
         | enabled      | True                             |
         | id           | e814a0cec40546e98cf0c25a82498483 |
         | interface    | admin                            |
         | region       | RegionOne                        |
         | region_id    | RegionOne                        |
         | service_id   | 30d92a97a81a4e5d8fd97a32bafd7b88 |
         | service_name | manilav2                         |
         | service_type | sharev2                          |
         | url          | http://controller:8786/v2        |
         +--------------+----------------------------------+

   Note

   The Shared File Systems services require endpoints for each service entity.

## Install and configure components

1. Install the packages:

       # apt-get install manila-api manila-scheduler python3-manilaclient

2. Edit the `/etc/manila/manila.conf` file and complete the following actions:

   - In the `[database]` section, configure database access:

         [database]
         ...
         connection = mysql+pymysql://manila:MANILA_DBPASS@controller/manila

     Replace `MANILA_DBPASS` with the password you chose for the Shared File Systems database.

3. Complete the rest of the configuration in `manila.conf`:

   - In the `[DEFAULT]` section, configure `RabbitMQ` message queue access:

         [DEFAULT]
         ...
         transport_url = rabbit://openstack:RABBIT_PASS@controller

     Replace `RABBIT_PASS` with the password you chose for the `openstack` account in `RabbitMQ`.

   - In the `[DEFAULT]` section, set the following config values:

         [DEFAULT]
         ...
         default_share_type = default_share_type
         share_name_template = share-%s
         rootwrap_config = /etc/manila/rootwrap.conf
         api_paste_config = /etc/manila/api-paste.ini

     Important

     The `default_share_type` option specifies the default share type to be used when shares are created without specifying the share type in the request. The default share type that is specified in the configuration file has to be created with the necessary required extra-specs (such as `driver_handles_share_servers`) set appropriately with reference to the driver mode used. This is further explained in the section discussing the setup and configuration of the share node.

   - In the `[DEFAULT]` and `[keystone_authtoken]` sections, configure Identity service access:

         [DEFAULT]
         ...
         auth_strategy = keystone

         [keystone_authtoken]
         ...
         memcached_servers = controller:11211
         www_authenticate_uri = http://controller:5000
         auth_url = http://controller:5000
         auth_type = password
         project_domain_name = Default
         user_domain_name = Default
         project_name = service
         username = manila
         password = MANILA_PASS

     Replace `MANILA_PASS` with the password you chose for the `manila` user in the Identity service.

   - In the `[DEFAULT]` section, configure the `my_ip` option to use the management interface IP address of the controller node:

         [DEFAULT]
         ...
         my_ip = 10.0.0.11

   - In the `[oslo_concurrency]` section, configure the lock path:

         [oslo_concurrency]
         ...
         lock_path = /var/lock/manila

1. Populate the Shared File Systems database:

       # su -s /bin/sh -c "manila-manage db sync" manila

   Note

   Ignore any deprecation messages in this output.

## Finalize installation

1. Restart the Shared File Systems services:

       # service manila-scheduler restart
       # service manila-api restart

this page last updated: 2026-04-22 07:00:00

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

found an error? report a bug