Drivers¶
Cloud management¶
devstack [CloudManagement, NodeDiscover]¶
Devstack driver.
This driver requires devstack installed in screen mode (USE_SCREEN=True). Supports discovering of node MAC addreses.
Example configuration:
cloud_management:
driver: devstack
args:
address: 192.168.1.10
username: ubuntu
password: ubuntu_pass
private_key_file: ~/.ssh/id_rsa_devstack
slaves:
- 192.168.1.11
- 192.168.1.12
iface: eth1
parameters:
- address - ip address of any devstack node
- username - username for all nodes
- password - password for all nodes (optional)
- private_key_file - path to key file (optional)
- slaves - list of ips for additional nodes (optional)
- iface - network interface name to retrive mac address (optional)
Default services:
- glance-api
- ironic-api
- ironic-conductor
- keystone
- mysql
- nova-api
- nova-compute
- nova-scheduler
- rabbitmq
fuel [CloudManagement, NodeDiscover]¶
Fuel driver.
Cloud deployed by fuel. Supports discovering of slave nodes.
Example configuration:
cloud_management:
driver: fuel
args:
address: 192.168.1.10
username: root
private_key_file: ~/.ssh/id_rsa_fuel
slave_direct_ssh: True
parameters:
- address - ip address of fuel master node
- username - username for fuel master and slave nodes
- private_key_file - path to key file (optional)
- slave_direct_ssh - if False then fuel master is used as ssh proxy (optional)
Default services:
- cinder-api
- cinder-backup
- cinder-scheduler
- cinder-volume
- glance-api
- glance-glare
- glance-registry
- heat-api
- heat-engine
- horizon
- ironic-api
- ironic-conductor
- keystone
- memcached
- mysql
- neutron-dhcp-agent
- neutron-l3-agent
- neutron-metadata-agent
- neutron-openvswitch-agent
- neutron-server
- nova-api
- nova-cert
- nova-compute
- nova-conductor
- nova-consoleauth
- nova-novncproxy
- nova-scheduler
- rabbitmq
- swift-account
- swift-account-auditor
- swift-account-reaper
- swift-account-replicator
- swift-container
- swift-container-auditor
- swift-container-replicator
- swift-container-sync
- swift-container-updater
- swift-object
- swift-object-auditor
- swift-object-replicator
- swift-object-updater
- swift-proxy
tcpcloud [CloudManagement, NodeDiscover]¶
TCPCloud driver.
Supports discovering of slave nodes.
Example configuration:
cloud_management:
driver: tcpcloud
args:
address: 192.168.1.10
username: root
password: root_pass
private_key_file: ~/.ssh/id_rsa_tcpcloud
slave_username: ubuntu
slave_password: ubuntu_pass
master_sudo: False
slave_sudo: True
slave_name_regexp: ^(?!cfg|mon)
slave_direct_ssh: True
get_ips_cmd: pillar.get _param:single_address
parameters:
- address - ip address of salt config node
- username - username for salt config node
- password - password for salt config node (optional)
- private_key_file - path to key file (optional)
- slave_username - username for salt minions (optional) username will be used if slave_username not specified
- slave_password - password for salt minions (optional) password will be used if slave_password not specified
- master_sudo - Use sudo on salt config node (optional)
- slave_sudo - Use sudi on salt minion nodes (optional)
- slave_name_regexp - regexp for minion FQDNs (optional)
- slave_direct_ssh - if False then salt master is used as ssh proxy (optional)
- get_ips_cmd - salt command to get IPs of minions (optional)
Default services:
- cinder-api
- cinder-backup
- cinder-scheduler
- cinder-volume
- elasticsearch
- glance-api
- glance-registry
- grafana-server
- heat-api
- heat-engine
- horizon
- influxdb
- keystone
- kibana
- memcached
- mysql
- nagios3
- neutron-dhcp-agent
- neutron-l3-agent
- neutron-metadata-agent
- neutron-openvswitch-agent
- neutron-server
- nova-api
- nova-cert
- nova-compute
- nova-conductor
- nova-consoleauth
- nova-novncproxy
- nova-scheduler
- rabbitmq
Power management¶
libvirt [PowerDriver]¶
Libvirt driver.
Example configuration:
power_managements:
- driver: libvirt
args:
connection_uri: qemu+unix:///system
parameters:
- connection_uri - libvirt uri
ipmi [PowerDriver]¶
IPMI driver.
Example configuration:
power_managements:
- driver: ipmi
args:
mac_to_bmc:
aa:bb:cc:dd:ee:01:
address: 170.0.10.50
username: admin1
password: Admin_123
aa:bb:cc:dd:ee:02:
address: 170.0.10.51
username: admin2
password: Admin_123
fqdn_to_bmc:
node3.local:
address: 170.0.10.52
username: admin1
password: Admin_123
parameters:
- mac_to_bmc - list of dicts where keys are the node MACs and
values are the corresponding BMC configurations with the folowing
fields:
- address - ip address of IPMI server
- username - IPMI user
- password - IPMI password
Node discover¶
node_list [NodeDiscover]¶
Node list.
Allows specifying list of nodes in configuration.
Example configuration:
node_discover:
driver: node_list
args:
- ip: 10.0.0.51
mac: aa:bb:cc:dd:ee:01
fqdn: node1.local
- ip: 10.0.0.52
mac: aa:bb:cc:dd:ee:02
fqdn: node2.local
- ip: 10.0.0.53
mac: aa:bb:cc:dd:ee:03
fqdn: node3.local
Service drivers¶
process [Service]¶
Service as process
“process” is a basic service driver that uses ps and kill in actions like kill / freeze / unfreeze. Commands for start / restart / terminate should be specified in configuration, otherwise the commands will fail at runtime.
Example configuration:
services:
app:
driver: process
args:
grep: my_app
restart_cmd: /bin/my_app --restart
terminate_cmd: /bin/stop_my_app
start_cmd: /bin/my_app
port: ['tcp', 4242]
parameters:
- grep - regexp for grep to find process PID
- restart_cmd - command to restart service (optional)
- terminate_cmd - command to terminate service (optional)
- start_cmd - command to start service (optional)
- port - tuple with two values - potocol, port number (optional)
linux_service [ServiceAsProcess]¶
Linux service
Service that is defined in init.d and can be controled by service CLI tool.
Example configuration:
services:
app:
driver: linux_service
args:
linux_service: app
grep: my_app
port: ['tcp', 4242]
parameters:
- linux_service - name of a service
- grep - regexp for grep to find process PID
- port - tuple with two values - potocol, port number (optional)
screen [ServiceAsProcess]¶
Service in Screen
This driver controls service that is started in a window of screen tool.
Example configuration:
services:
app:
driver: screen
args:
window_name: app
grep: my_app
port: ['tcp', 4242]
parameters:
- window_name - name of a service
- grep - regexp for grep to find process PID
- port - tuple with two values - potocol, port number (optional)
salt_service [ServiceAsProcess]¶
Salt service
Service that can be controled by salt service.* commands.
Example configuration:
services:
app:
driver: salt_service
args:
salt_service: app
grep: my_app
port: ['tcp', 4242]
parameters:
- salt_service - name of a service
- grep - regexp for grep to find process PID
- port - tuple with two values - potocol, port number (optional)
pcs_service [ServiceAsProcess]¶
Service as a resource in Pacemaker
Service that can be controled by pcs resource CLI tool.
Example configuration:
services:
app:
driver: pcs_service
args:
pcs_service: app
grep: my_app
port: ['tcp', 4242]
parameters:
- pcs_service - name of a service
- grep - regexp for grep to find process PID
- port - tuple with two values - potocol, port number (optional)
pcs_or_linux_service [ServiceAsProcess]¶
Service as a resource in Pacemaker or Linux service
Service that can be controled by pcs resource CLI tool or linux service tool. This is a hybrid driver that tries to find service in Pacemaker and uses linux service if it is not found there.
Example configuration:
services:
app:
driver: pcs_or_linux_service
args:
pcs_service: p_app
linux_service: app
grep: my_app
port: ['tcp', 4242]
parameters:
- pcs_service - name of a service in Pacemaker
- linux_service - name of a service in init.d
- grep - regexp for grep to find process PID
- port - tuple with two values - potocol, port number (optional)