ceph/doc/mgr/ansible.rst

122 lines
3.3 KiB
ReStructuredText

.. _ansible-module:
====================
Ansible Orchestrator
====================
This module is a :ref:`Ceph orchestrator <orchestrator-modules>` module that uses `Ansible Runner Service <https://github.com/pcuzner/ansible-runner-service>`_ (a RESTful API server) to execute Ansible playbooks in order to satisfy the different operations supported.
These operations basically (and for the moment) are:
- Get an inventory of the Ceph cluster nodes and all the storage devices present in each node
- ...
- ...
Usage
=====
Enable the module:
::
# ceph mgr module enable ansible
Disable the module
::
# ceph mgr module disable ansible
Enable the Ansible orchestrator module and use it with the :ref:`CLI <orchestrator-cli-module>`:
::
ceph mgr module enable ansible
ceph orchestrator set backend ansible
Configuration
=============
Configuration must be set once the module is enabled by first time.
This can be done in one monitor node via the configuration key facility on a
cluster-wide level (so they apply to all manager instances) as follows::
# ceph config set mgr mgr/ansible/server_addr <ip_address/server_name>
# ceph config set mgr mgr/ansible/server_port <port>
# ceph config set mgr mgr/ansible/username <username>
# ceph config set mgr mgr/ansible/password <password>
# ceph config set mgr mgr/ansible/verify_server <verify_server_value>
Where:
* <ip_address/server_name>: Is the ip address/hostname of the server where the Ansible Runner Service is available.
* <port>: The port number where the Ansible Runner Service is listening
* <username>: The username of one authorized user in the Ansible Runner Service
* <password>: The password of the authorized user.
* <verify_server_value>: Either a boolean, in which case it controls whether the server's TLS certificate is verified, or a string, in which case it must be a path to a CA bundle to use in the verification. Defaults to ``True``.
Debugging
=========
Any kind of incident with this orchestrator module can be debugged using the Ceph manager logs:
Set the right log level in order to debug properly. Remember that the python log levels debug, info, warn, err are mapped into the Ceph severities 20, 4, 1 and 0 respectively.
And use the "active" manager node: ( "ceph -s" command in one monitor give you this information)
* Check current debug level::
[@mgr0 ~]# ceph daemon mgr.mgr0 config show | grep debug_mgr
"debug_mgr": "1/5",
"debug_mgrc": "1/5",
* Change the log level to "debug"::
[mgr0 ~]# ceph daemon mgr.mgr0 config set debug_mgr 20/5
{
"success": ""
}
* Restore "info" log level::
[mgr0 ~]# ceph daemon mgr.mgr0 config set debug_mgr 1/5
{
"success": ""
}
Operations
==========
**Inventory:**
Get the list of storage devices installed in all the cluster nodes. The output format is::
[host:
device_name (type_of_device , size_in_bytes)]
Example::
[root@mon0 ~]# ceph orchestrator device ls
192.168.121.160:
vda (hdd, 44023414784b)
sda (hdd, 53687091200b)
sdb (hdd, 53687091200b)
sdc (hdd, 53687091200b)
192.168.121.36:
vda (hdd, 44023414784b)
192.168.121.201:
vda (hdd, 44023414784b)
192.168.121.70:
vda (hdd, 44023414784b)
sda (hdd, 53687091200b)
sdb (hdd, 53687091200b)
sdc (hdd, 53687091200b)