Docs update
* Added MSDNS to Known-Broken * Removed Juno Docs * Added CLI docs for designate-manage * Update backend docs to new yaml style Change-Id: I8f6876bfeb33bcad46141030a04fe9127dedcefe
This commit is contained in:
parent
e34ddf8110
commit
b172846a1f
@ -36,6 +36,8 @@ class Backend(DriverPlugin):
|
||||
__plugin_type__ = 'backend'
|
||||
__plugin_ns__ = 'designate.backend'
|
||||
|
||||
__backend_status__ = 'untested'
|
||||
|
||||
def __init__(self, target):
|
||||
super(Backend, self).__init__()
|
||||
|
||||
|
@ -25,16 +25,62 @@ cfg.CONF.register_group(cfg.OptGroup(
|
||||
))
|
||||
|
||||
OPTS = [
|
||||
cfg.StrOpt('wapi_url'),
|
||||
cfg.StrOpt('username'),
|
||||
cfg.StrOpt('password'),
|
||||
cfg.BoolOpt('sslverify', default=False),
|
||||
cfg.BoolOpt('multi_tenant', default=False),
|
||||
cfg.IntOpt('http_pool_connections', default=100),
|
||||
cfg.IntOpt('http_pool_maxsize', default=100),
|
||||
cfg.StrOpt('dns_view', default='default'),
|
||||
cfg.StrOpt('network_view', default='default'),
|
||||
cfg.StrOpt('ns_group')
|
||||
cfg.StrOpt(
|
||||
'wapi_url',
|
||||
deprecated_for_removal=True,
|
||||
deprecated_reason="All backend options have been migrated to options "
|
||||
"in the pools.yaml file"),
|
||||
cfg.StrOpt(
|
||||
'username',
|
||||
deprecated_for_removal=True,
|
||||
deprecated_reason="All backend options have been migrated to options "
|
||||
"in the pools.yaml file"),
|
||||
cfg.StrOpt(
|
||||
'password',
|
||||
deprecated_for_removal=True,
|
||||
deprecated_reason="All backend options have been migrated to options "
|
||||
"in the pools.yaml file"),
|
||||
cfg.BoolOpt(
|
||||
'sslverify',
|
||||
default=False,
|
||||
deprecated_for_removal=True,
|
||||
deprecated_reason="All backend options have been migrated to options "
|
||||
"in the pools.yaml file"),
|
||||
cfg.BoolOpt(
|
||||
'multi_tenant',
|
||||
default=False,
|
||||
deprecated_for_removal=True,
|
||||
deprecated_reason="All backend options have been migrated to options "
|
||||
"in the pools.yaml file"),
|
||||
cfg.IntOpt(
|
||||
'http_pool_connections',
|
||||
default=100,
|
||||
deprecated_for_removal=True,
|
||||
deprecated_reason="All backend options have been migrated to options "
|
||||
"in the pools.yaml file"),
|
||||
cfg.IntOpt(
|
||||
'http_pool_maxsize',
|
||||
default=100,
|
||||
deprecated_for_removal=True,
|
||||
deprecated_reason="All backend options have been migrated to options "
|
||||
"in the pools.yaml file"),
|
||||
cfg.StrOpt(
|
||||
'dns_view',
|
||||
default='default',
|
||||
deprecated_for_removal=True,
|
||||
deprecated_reason="All backend options have been migrated to options "
|
||||
"in the pools.yaml file"),
|
||||
cfg.StrOpt(
|
||||
'network_view',
|
||||
default='default',
|
||||
deprecated_for_removal=True,
|
||||
deprecated_reason="All backend options have been migrated to options "
|
||||
"in the pools.yaml file"),
|
||||
cfg.StrOpt(
|
||||
'ns_group',
|
||||
deprecated_for_removal=True,
|
||||
deprecated_reason="All backend options have been migrated to options "
|
||||
"in the pools.yaml file")
|
||||
]
|
||||
|
||||
cfg.CONF.register_opts(OPTS, group='backend:infoblox')
|
||||
|
@ -40,6 +40,7 @@ class SupportMatrix(object):
|
||||
self.grades = []
|
||||
|
||||
self.grade_names = {}
|
||||
self.grade_classes = {}
|
||||
|
||||
# Dict of (name, SupportMatrixTarget) enumerating
|
||||
# all the hypervisor drivers that have data recorded
|
||||
@ -50,11 +51,12 @@ class SupportMatrix(object):
|
||||
|
||||
class SupportMatrixGrade(object):
|
||||
|
||||
def __init__(self, key, title, notes, in_tree):
|
||||
def __init__(self, key, title, notes, in_tree, css_class):
|
||||
self.key = key
|
||||
self.title = title
|
||||
self.notes = notes
|
||||
self.in_tree = in_tree
|
||||
self.css_class = css_class
|
||||
|
||||
|
||||
class SupportMatrixBackend(object):
|
||||
@ -156,11 +158,13 @@ class SupportMatrixDirective(rst.Directive):
|
||||
title = cfg.get("grades.%s" % grade, "title")
|
||||
notes = cfg.get("grades.%s" % grade, "notes")
|
||||
in_tree = cfg.get("grades.%s" % grade, "in-tree")
|
||||
css_class = cfg.get("grades.%s" % grade, "css-class")
|
||||
|
||||
matrix.grade_names[grade] = title
|
||||
matrix.grade_classes[grade] = css_class
|
||||
|
||||
grade = SupportMatrixGrade(
|
||||
grade, title, notes, in_tree)
|
||||
grade, title, notes, in_tree, css_class)
|
||||
|
||||
matrix.grades.append(grade)
|
||||
|
||||
@ -178,31 +182,27 @@ class SupportMatrixDirective(rst.Directive):
|
||||
def _build_backend_detail_table(self, backend, matrix):
|
||||
|
||||
table = nodes.table()
|
||||
table.set_class("table")
|
||||
table.set_class("table-condensed")
|
||||
tgroup = nodes.tgroup(cols=2)
|
||||
thead = nodes.thead()
|
||||
tbody = nodes.tbody()
|
||||
|
||||
for i in range(2):
|
||||
tgroup.append(nodes.colspec(colwidth=1))
|
||||
|
||||
tgroup.append(thead)
|
||||
tgroup.append(tbody)
|
||||
table.append(tgroup)
|
||||
|
||||
header = nodes.row()
|
||||
blank = nodes.entry()
|
||||
blank.append(nodes.emphasis(text=backend.title))
|
||||
header.append(blank)
|
||||
blank = nodes.entry()
|
||||
header.append(blank)
|
||||
thead.append(header)
|
||||
|
||||
graderow = nodes.row()
|
||||
gradetitle = nodes.entry()
|
||||
gradetitle.append(nodes.strong(text="Grade"))
|
||||
gradetext = nodes.entry()
|
||||
gradetext.append(nodes.paragraph(
|
||||
text=matrix.grade_names[backend.status]))
|
||||
class_name = "label-%s" % matrix.grade_classes[backend.status]
|
||||
status_text = nodes.paragraph(
|
||||
text=matrix.grade_names[backend.status])
|
||||
status_text.set_class(class_name)
|
||||
status_text.set_class("label")
|
||||
gradetext.append(status_text)
|
||||
graderow.append(gradetitle)
|
||||
graderow.append(gradetext)
|
||||
tbody.append(graderow)
|
||||
@ -212,10 +212,18 @@ class SupportMatrixDirective(rst.Directive):
|
||||
treetitle.append(nodes.strong(text="In Tree"))
|
||||
if bool(backend.in_tree):
|
||||
status = u"\u2714"
|
||||
intree = nodes.paragraph(text=status)
|
||||
intree.set_class("label")
|
||||
intree.set_class("label-success")
|
||||
|
||||
else:
|
||||
status = u"\u2716"
|
||||
intree = nodes.paragraph(text=status)
|
||||
intree.set_class("label")
|
||||
intree.set_class("label-danger")
|
||||
status = u"\u2714"
|
||||
treetext = nodes.entry()
|
||||
treetext.append(nodes.paragraph(text=status))
|
||||
treetext.append(intree)
|
||||
treerow.append(treetitle)
|
||||
treerow.append(treetext)
|
||||
tbody.append(treerow)
|
||||
@ -257,6 +265,8 @@ class SupportMatrixDirective(rst.Directive):
|
||||
|
||||
for key in six.iterkeys(matrix.backends):
|
||||
|
||||
content.append(
|
||||
nodes.subtitle(text=matrix.backends[key].title))
|
||||
content.append(
|
||||
self._build_backend_detail_table(
|
||||
matrix.backends[key],
|
||||
@ -268,9 +278,12 @@ class SupportMatrixDirective(rst.Directive):
|
||||
|
||||
def _build_grade_listing(self, matrix, content):
|
||||
|
||||
summarytitle = nodes.title(text="Grades")
|
||||
summarytitle = nodes.subtitle(text="Grades")
|
||||
content.append(nodes.raw(text="Grades", attributes={'tagname': 'h2'}))
|
||||
content.append(summarytitle)
|
||||
table = nodes.table()
|
||||
table.set_class("table")
|
||||
table.set_class("table-condensed")
|
||||
grades = matrix.grades
|
||||
|
||||
tablegroup = nodes.tgroup(cols=2)
|
||||
@ -298,7 +311,11 @@ class SupportMatrixDirective(rst.Directive):
|
||||
for grade in grades:
|
||||
item = nodes.row()
|
||||
namecol = nodes.entry()
|
||||
namecol.append(nodes.paragraph(text=grade.title))
|
||||
class_name = "label-%s" % grade.css_class
|
||||
status_text = nodes.paragraph(text=grade.title)
|
||||
status_text.set_class(class_name)
|
||||
status_text.set_class("label")
|
||||
namecol.append(status_text)
|
||||
item.append(namecol)
|
||||
|
||||
notescol = nodes.entry()
|
||||
@ -311,8 +328,10 @@ class SupportMatrixDirective(rst.Directive):
|
||||
|
||||
def _build_grade_table(self, matrix, content):
|
||||
|
||||
summarytitle = nodes.title(text="Backends - Summary")
|
||||
summarytitle = nodes.subtitle(text="Backends - Summary")
|
||||
summary = nodes.table()
|
||||
summary.set_class("table")
|
||||
summary.set_class("table-condensed")
|
||||
cols = len(list(six.iterkeys(matrix.backends)))
|
||||
cols += 2
|
||||
summarygroup = nodes.tgroup(cols=cols)
|
||||
@ -362,21 +381,35 @@ class SupportMatrixDirective(rst.Directive):
|
||||
item.append(namecol)
|
||||
|
||||
statuscol = nodes.entry()
|
||||
statuscol.append(nodes.paragraph(text=grade.title))
|
||||
class_name = "label-%s" % grade.css_class
|
||||
status_text = nodes.paragraph(text=grade.title)
|
||||
status_text.set_class(class_name)
|
||||
status_text.set_class("label")
|
||||
statuscol.append(status_text)
|
||||
item.append(statuscol)
|
||||
|
||||
typecol = nodes.entry()
|
||||
typecol.append(nodes.paragraph(
|
||||
text=matrix.backends[backend].type))
|
||||
type_text = nodes.paragraph(
|
||||
text=matrix.backends[backend].type)
|
||||
type_text.set_class("label")
|
||||
type_text.set_class("label-info")
|
||||
typecol.append(type_text)
|
||||
item.append(typecol)
|
||||
|
||||
if bool(matrix.backends[backend].in_tree):
|
||||
status = u"\u2714"
|
||||
intree = nodes.paragraph(text=status)
|
||||
intree.set_class("label")
|
||||
intree.set_class("label-success")
|
||||
|
||||
else:
|
||||
status = u"\u2716"
|
||||
intree = nodes.paragraph(text=status)
|
||||
intree.set_class("label")
|
||||
intree.set_class("label-danger")
|
||||
|
||||
intreecol = nodes.entry()
|
||||
intreecol.append(nodes.paragraph(text=status))
|
||||
intreecol.append(intree)
|
||||
item.append(intreecol)
|
||||
|
||||
notescol = nodes.entry()
|
||||
@ -390,5 +423,5 @@ class SupportMatrixDirective(rst.Directive):
|
||||
|
||||
|
||||
def setup(app):
|
||||
app.add_directive('support_matrix', SupportMatrixDirective)
|
||||
app.add_stylesheet('support-matrix.css')
|
||||
app.add_directive('support_matrix', SupportMatrixDirective)
|
||||
|
3
doc/source/_static/support-matrix.css
Normal file
3
doc/source/_static/support-matrix.css
Normal file
@ -0,0 +1,3 @@
|
||||
.docs-body .section h1 {
|
||||
display: block;
|
||||
}
|
@ -26,16 +26,19 @@ Designate Configuration
|
||||
|
||||
Example configuration required for Bind9 operation. One section for each pool target
|
||||
|
||||
.. code-block:: ini
|
||||
|
||||
[pool_target:f26e0b32-736f-4f0a-831b-039a415c481e]
|
||||
options = rndc_host: 192.168.27.100, rndc_port: 953, rndc_config_file: /etc/bind/rndc.conf, rndc_key_file: /etc/bind/rndc.key, port: 53, host: 192.168.27.100, clean_zonefile: false
|
||||
masters = 192.168.27.100:5354
|
||||
type = bind9
|
||||
.. literalinclude:: sample_yaml_snippets/bind.yaml
|
||||
:language: yaml
|
||||
|
||||
The key and config files are relative to the host running Pool Manager (and can
|
||||
be different from the hosts running Bind)
|
||||
|
||||
Then update the pools in designate - see :ref:`designate_manage_pool` for further details on
|
||||
the ``designate-manage pool`` command
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ designate-manage pool update
|
||||
|
||||
Bind9 Configuration
|
||||
-------------------
|
||||
|
||||
|
@ -67,39 +67,6 @@ Designate Backend Configuration
|
||||
the domain. So, if you wish for any Infoblox nameservers to be listed in NS
|
||||
records, they must be added via Designate.
|
||||
|
||||
*Example Designate Configuration*
|
||||
|
||||
.. code-block:: ini
|
||||
|
||||
[pool:794ccc2c-d751-44fe-b57f-8894c9f5c842]
|
||||
#Specify the API service points for each grid
|
||||
targets = f26e0b32-736f-4f0a-831b-039a415c481e
|
||||
# Specify the lead secondary servers configured in the NS groups
|
||||
# for each target.
|
||||
nameservers = ffedb95e-edc1-11e4-9ae6-000c29db281b
|
||||
|
||||
[pool_target:f26e0b32-736f-4f0a-831b-039a415c481e]
|
||||
type = infoblox
|
||||
# wapi_url, username, password can all be overridden from the defaults
|
||||
# allowing targets to point to different grids
|
||||
options = dns_view: default, ns_group: Designate
|
||||
|
||||
[pool_nameserver:ffedb95e-edc1-11e4-9ae6-000c29db281b]
|
||||
host=172.16.98.200
|
||||
port=53
|
||||
|
||||
[backend:infoblox]
|
||||
# The values below will be used for all targets unless overridden
|
||||
# in the target configuration. http_* options may only be set here,
|
||||
# not at the target level.
|
||||
http_pool_maxsize = 100
|
||||
http_pool_connections = 100
|
||||
wapi_url = https://172.16.98.200/wapi/v2.1/
|
||||
sslverify = False
|
||||
password = infoblox
|
||||
username = admin
|
||||
multi_tenant = False
|
||||
|
||||
Multi-tenant Configuration
|
||||
--------------------------
|
||||
|
||||
|
@ -18,25 +18,6 @@
|
||||
PowerDNS Backend
|
||||
================
|
||||
|
||||
Designate Configuration
|
||||
-----------------------
|
||||
|
||||
=============================== ====================================== ==============================================================
|
||||
Parameter Default Note
|
||||
=============================== ====================================== ==============================================================
|
||||
domain_type NATIVE PowerDNS Domain Type
|
||||
also_notify [] List of additional IPs to send NOTIFYs to.
|
||||
connection sqlite:///$pystatepath/powerdns.sqlite Database connection string
|
||||
connection_debug 0 Verbosity of SQL debugging information. 0=None, 100=Everything
|
||||
connection_trace False Add python stack traces to SQL as comment strings
|
||||
idle_timeout 3600 timeout before idle sql connections are reaped
|
||||
max_retries 10 maximum db connection retries during startup.
|
||||
(setting -1 implies an infinite retry count)
|
||||
retry_interval 10 interval between retries of opening a sql connection
|
||||
mysql_engine InnoDB MySQL engine to use
|
||||
sqlite_synchronous True If passed, use synchronous mode for sqlite
|
||||
=============================== ====================================== ==============================================================
|
||||
|
||||
|
||||
PowerDNS Configuration
|
||||
----------------------
|
||||
@ -49,7 +30,7 @@ You need to configure PowerDNS to use the MySQL backend.
|
||||
|
||||
launch = gmysql
|
||||
|
||||
2. Configure the MySQL database settings::
|
||||
2. Configure the MySQL database settings:
|
||||
|
||||
.. code-block:: ini
|
||||
|
||||
@ -61,38 +42,31 @@ You need to configure PowerDNS to use the MySQL backend.
|
||||
gmysql-dnssec=yes
|
||||
#gmysql-socket=<socket path>
|
||||
|
||||
|
||||
.. note::
|
||||
PowerDNS can connect via socket or host/port.
|
||||
|
||||
3. Configure the options for designate-central - specifically "connection" to point to your MySQL database
|
||||
3. Configure the PowerDNS Backend using this sample target snippet
|
||||
|
||||
.. code-block:: ini
|
||||
.. literalinclude:: sample_yaml_snippets/powerdns.yaml
|
||||
:language: yaml
|
||||
|
||||
[backend:powerdns]
|
||||
connection = mysql+pymysql://<username>:<password>@<host>:<port>/<dbname>
|
||||
4. Then update the pools in designate
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ designate-manage pool update
|
||||
|
||||
See :ref:`designate_manage_pool` for further details on the ``designate-manage pool``
|
||||
command, and :ref:`pools` for information about the yaml file syntax
|
||||
|
||||
4. Setup the database schema.
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ designate-manage powerdns init
|
||||
$ designate-manage powerdns sync
|
||||
$ designate-manage powerdns sync <pool_id>
|
||||
|
||||
See :ref:`designate_manage_powerdns` for further details on the ``designate-manage powerdns`` command
|
||||
|
||||
5. Restart PowerDNS and it should be ready to serve queries using the MySQL database as the backing store.
|
||||
|
||||
|
||||
PowerDNS deployment as hidden Master
|
||||
------------------------------------
|
||||
|
||||
One deployment scenario can be that the PowerDNS backend will be used as a "hidden" Master DNS for other DNS servers to consume via AXFR.
|
||||
|
||||
Say you have 10.0.0.1 and 10.0.0.2 as slaves then configure the backend as follows in addition to other options
|
||||
|
||||
.. code-block:: ini
|
||||
|
||||
[backend:powernds]
|
||||
domain_type = MASTER
|
||||
also_notify = 10.0.0.1,10.0.0.2
|
||||
|
||||
.. note::
|
||||
This should mostly be used in connection with another backend acting as slave.
|
||||
|
17
doc/source/backends/sample_yaml_snippets/bind.yaml
Normal file
17
doc/source/backends/sample_yaml_snippets/bind.yaml
Normal file
@ -0,0 +1,17 @@
|
||||
targets:
|
||||
- type: bind
|
||||
description: BIND9 Server 1
|
||||
|
||||
# List out the designate-mdns servers from which BIND servers should
|
||||
# request zone transfers (AXFRs) from.
|
||||
masters:
|
||||
- host: 192.0.2.1
|
||||
port: 5354
|
||||
|
||||
# BIND Configuration options
|
||||
options:
|
||||
host: 192.0.2.2
|
||||
port: 53
|
||||
rndc_host: 192.0.2.2
|
||||
rndc_port: 953
|
||||
rndc_key_file: /etc/designate/rndc.key
|
15
doc/source/backends/sample_yaml_snippets/powerdns.yaml
Normal file
15
doc/source/backends/sample_yaml_snippets/powerdns.yaml
Normal file
@ -0,0 +1,15 @@
|
||||
targets:
|
||||
- type: powerdns
|
||||
description: PowerDNS Database Cluster
|
||||
|
||||
# List out the designate-mdns servers from which PowerDNS servers should
|
||||
# request zone transfers (AXFRs) from.
|
||||
masters:
|
||||
- host: 192.0.2.1
|
||||
port: 5354
|
||||
|
||||
# PowerDNS Configuration options
|
||||
options:
|
||||
host: 192.0.2.1
|
||||
port: 53
|
||||
connection: 'mysql+pymysql://designate:password@127.0.0.1/designate_pdns?charset=utf8'
|
345
doc/source/designate-manage.rst
Normal file
345
doc/source/designate-manage.rst
Normal file
@ -0,0 +1,345 @@
|
||||
.. _designate-manage:
|
||||
|
||||
====================
|
||||
Designate Manage CLI
|
||||
====================
|
||||
|
||||
This chapter documents :command:`designate-manage`
|
||||
|
||||
For help on a specific :command:`designate` command, enter:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ designate-manage COMMAND --help
|
||||
|
||||
.. _designate_manage_command_usage:
|
||||
|
||||
designate-manage
|
||||
================
|
||||
|
||||
designate-manage usage
|
||||
----------------------
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
usage: designate-manage [-h] [--config-dir DIR] [--config-file PATH] [--debug]
|
||||
[--log-config-append PATH] [--log-date-format DATE_FORMAT]
|
||||
[--log-dir LOG_DIR] [--log-file PATH] [--nodebug]
|
||||
[--nouse-syslog] [--nouse-syslog-rfc-format] [--noverbose]
|
||||
[--nowatch-log-file]
|
||||
[--syslog-log-facility SYSLOG_LOG_FACILITY] [--use-syslog]
|
||||
[--use-syslog-rfc-format] [--verbose] [--version]
|
||||
[--watch-log-file]
|
||||
|
||||
.. _designate_command_options:
|
||||
|
||||
designate optional arguments
|
||||
----------------------------
|
||||
|
||||
``--config-dir DIR``
|
||||
Path to a config directory to pull \*.conf files from.
|
||||
This file set is sorted, so as to provide a
|
||||
predictable parse order if individual options are
|
||||
over-ridden. The set is parsed after the file(s)
|
||||
specified via previous --config-file, arguments hence
|
||||
over-ridden options in the directory take precedence.
|
||||
|
||||
``--config-file PATH``
|
||||
Path to a config file to use. Multiple config files
|
||||
can be specified, with values in later files taking
|
||||
precedence. Defaults to None.
|
||||
|
||||
``--debug, -d``
|
||||
If set to true, the logging level will be set to DEBUG
|
||||
instead of the default INFO level.
|
||||
|
||||
``--log-config-append PATH, --log_config PATH``
|
||||
The name of a logging configuration file. This file is
|
||||
appended to any existing logging configuration files.
|
||||
For details about logging configuration files, see the
|
||||
Python logging module documentation. Note that when
|
||||
logging configuration files are used then all logging
|
||||
configuration is set in the configuration file and
|
||||
other logging configuration options are ignored (for
|
||||
example, logging_context_format_string).
|
||||
|
||||
``--log-date-format DATE_FORMAT``
|
||||
Defines the format string for %(asctime)s in log
|
||||
records. Default: None . This option is ignored if
|
||||
log_config_append is set.
|
||||
|
||||
``--log-dir LOG_DIR, --logdir LOG_DIR``
|
||||
(Optional) The base directory used for relative
|
||||
log_file paths. This option is ignored if
|
||||
log_config_append is set.
|
||||
|
||||
``--log-file PATH, --logfile PATH``
|
||||
(Optional) Name of log file to send logging output to.
|
||||
If no default is set, logging will go to stderr as
|
||||
defined by use_stderr. This option is ignored if
|
||||
log_config_append is set.
|
||||
|
||||
``--nodebug``
|
||||
The inverse of --debug
|
||||
|
||||
``--nouse-syslog``
|
||||
The inverse of --use-syslog
|
||||
|
||||
``--nouse-syslog-rfc-format``
|
||||
The inverse of --use-syslog-rfc-format
|
||||
|
||||
``--noverbose``
|
||||
The inverse of --verbose
|
||||
|
||||
``--nowatch-log-file``
|
||||
The inverse of --watch-log-file
|
||||
|
||||
``--syslog-log-facility SYSLOG_LOG_FACILITY``
|
||||
Syslog facility to receive log lines. This option is
|
||||
ignored if log_config_append is set.
|
||||
|
||||
``--use-syslog``
|
||||
Use syslog for logging. Existing syslog format is
|
||||
DEPRECATED and will be changed later to honor RFC5424.
|
||||
This option is ignored if log_config_append is set.
|
||||
|
||||
``--use-syslog-rfc-format``
|
||||
Enables or disables syslog rfc5424 format for logging.
|
||||
If enabled, prefixes the MSG part of the syslog
|
||||
message with APP-NAME (RFC5424). This option is
|
||||
ignored if log_config_append is set.
|
||||
|
||||
``--verbose, -v``
|
||||
If set to false, the logging level will be set to
|
||||
WARNING instead of the default INFO level.
|
||||
|
||||
``--watch-log-file``
|
||||
Uses logging handler designed to watch file system.
|
||||
When log file is moved or removed this handler will
|
||||
open a new log file with specified path
|
||||
instantaneously. It makes sense only if log_file
|
||||
option is specified and Linux platform is used. This
|
||||
option is ignored if log_config_append is set.
|
||||
|
||||
|
||||
.. _designate_manage_pool:
|
||||
|
||||
designate-manage pool
|
||||
=====================
|
||||
|
||||
.. _designate_manage_pool_export_from_config:
|
||||
|
||||
designate-manage pool export_from_config
|
||||
----------------------------------------
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
usage: designate-manage pool export_from_config [-h] [--file FILE]
|
||||
|
||||
|
||||
Export a YAML copy of a Kilo/Liberty pool config.
|
||||
|
||||
**Optional arguments:**
|
||||
|
||||
``-h, --help``
|
||||
show this help message and exit
|
||||
|
||||
``--file FILE``
|
||||
The path to the file the yaml output should be writen to
|
||||
(Defaults to /etc/designate/pools.yaml)
|
||||
|
||||
.. _designate_manage_pool_generate_file:
|
||||
|
||||
designate-manage pool generate_file
|
||||
-----------------------------------
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
usage: designate-manage pool generate_file [-h] [--file FILE]
|
||||
|
||||
|
||||
Export a YAML copy of the current running pool config
|
||||
|
||||
**Optional arguments:**
|
||||
|
||||
``-h, --help``
|
||||
show this help message and exit
|
||||
|
||||
``--file FILE``
|
||||
The path to the file the yaml output should be writen to
|
||||
(Defaults to /etc/designate/pools.yaml)
|
||||
|
||||
.. _designate_manage_pool_update:
|
||||
|
||||
designate-manage pool update
|
||||
----------------------------
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
usage: designate-manage pool update [-h] [--file FILE] [--delete DELETE]
|
||||
[--dry_run DRY_RUN]
|
||||
|
||||
|
||||
Export a YAML copy of the current running pool config
|
||||
|
||||
**Optional arguments:**
|
||||
|
||||
``-h, --help``
|
||||
show this help message and exit
|
||||
|
||||
``--file FILE``
|
||||
The path to the file that should be used to update the pools config
|
||||
(Defaults to /etc/designate/pools.yaml)
|
||||
|
||||
``--delete DELETE``
|
||||
Any Pools not listed in the config file will be deleted.
|
||||
.. warning:: This will delete any zones left in this pool
|
||||
|
||||
``--dry_run DRY_RUN``
|
||||
This will simulate what will happen when you run this command
|
||||
|
||||
|
||||
.. _designate_manage_database:
|
||||
|
||||
designate-manage database
|
||||
=========================
|
||||
|
||||
.. _designate_manage_database_sync:
|
||||
|
||||
designate-manage database sync
|
||||
------------------------------
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
usage: designate-manage database sync [-h] [--revision REVISION]
|
||||
|
||||
|
||||
Update the designate database schema
|
||||
|
||||
**Optional arguments:**
|
||||
|
||||
``-h, --help``
|
||||
show this help message and exit
|
||||
|
||||
``--revision REVISION``
|
||||
The version that the designate database should be synced to.
|
||||
(Defaults to latest version)
|
||||
|
||||
|
||||
.. _designate_manage_database_version:
|
||||
|
||||
designate-manage database version
|
||||
---------------------------------
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
usage: designate-manage database version [-h]
|
||||
|
||||
|
||||
Show what version of the database schema is currently in place
|
||||
|
||||
**Optional arguments:**
|
||||
|
||||
``-h, --help``
|
||||
show this help message and exit
|
||||
|
||||
.. _designate_manage_pool_manager_cache:
|
||||
|
||||
designate-manage pool_manager_cache
|
||||
===================================
|
||||
|
||||
.. _designate_manage_pool_manager_cache_sync:
|
||||
|
||||
designate-manage pool_manager_cache sync
|
||||
----------------------------------------
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
usage: designate-manage pool_manager_cache sync [-h] [--revision REVISION]
|
||||
|
||||
|
||||
Update the designate pool manager cache database schema
|
||||
|
||||
**Optional arguments:**
|
||||
|
||||
``-h, --help``
|
||||
show this help message and exit
|
||||
|
||||
``--revision REVISION``
|
||||
The version that the designate pool manager cache database should be synced to.
|
||||
(Defaults to latest version)
|
||||
|
||||
|
||||
.. _designate_manage_pool_manager_cache_version:
|
||||
|
||||
designate-manage pool_manager_cache version
|
||||
-------------------------------------------
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
usage: designate-manage pool_manager_cache version [-h]
|
||||
|
||||
|
||||
Show what version of the pool manager cache database schema is currently in place
|
||||
|
||||
**Optional arguments:**
|
||||
|
||||
``-h, --help``
|
||||
show this help message and exit
|
||||
|
||||
.. _designate_manage_powerdns:
|
||||
|
||||
designate-manage powerdns
|
||||
=========================
|
||||
|
||||
.. _designate_manage_powerdns_sync:
|
||||
|
||||
designate-manage powerdns sync
|
||||
------------------------------
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
usage: designate-manage powerdns sync [-h] [--revision REVISION] POOL_ID
|
||||
|
||||
Update the designate powerdns database schema
|
||||
|
||||
**Required arguments:**
|
||||
|
||||
``POOL_ID``
|
||||
The pool that should be upgraded or migrated
|
||||
|
||||
**Optional arguments:**
|
||||
|
||||
``-h, --help``
|
||||
show this help message and exit
|
||||
|
||||
``--revision REVISION``
|
||||
The version that the designate pool manager cache database should be synced to.
|
||||
(Defaults to latest version)
|
||||
|
||||
|
||||
|
||||
|
||||
.. _designate_manage_powerdns_version:
|
||||
|
||||
designate-manage powerdns version
|
||||
-------------------------------------------
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
usage: designate-manage powerdns version [-h] POOL_ID
|
||||
|
||||
|
||||
Show what version of the powerdns database schema is currently in place
|
||||
|
||||
**Required arguments:**
|
||||
|
||||
``POOL_ID``
|
||||
The pool that should be upgraded or migrated
|
||||
|
||||
**Optional arguments:**
|
||||
|
||||
``-h, --help``
|
||||
show this help message and exit
|
||||
|
||||
|
@ -1,3 +1,4 @@
|
||||
===========================================
|
||||
Designate, a DNSaaS component for OpenStack
|
||||
===========================================
|
||||
|
||||
@ -54,6 +55,7 @@ Reference Documentation
|
||||
production-guidelines
|
||||
production-architecture
|
||||
configuration
|
||||
designate-manage
|
||||
rest
|
||||
devstack
|
||||
related
|
||||
|
@ -1,219 +0,0 @@
|
||||
*************************
|
||||
Installing Juno on Ubuntu
|
||||
*************************
|
||||
|
||||
.. _install-ubuntu-architecture:
|
||||
|
||||
Architecture
|
||||
============
|
||||
|
||||
|
||||
Please see :ref:`production-architecture` for general production architecture notes.
|
||||
|
||||
* Ubuntu as the Operating System
|
||||
* Designate
|
||||
* RabbitMQ
|
||||
* MySQL
|
||||
* :ref:`backend-powerdns`
|
||||
* Keystone for AuthN / AuthZ (Not included in this guide)
|
||||
|
||||
|
||||
.. _install-ubuntu-prerequisites:
|
||||
|
||||
Prerequisites
|
||||
=============
|
||||
|
||||
.. _install-ubuntu-prereq-install:
|
||||
|
||||
Install
|
||||
^^^^^^^
|
||||
::
|
||||
|
||||
$ sudo apt-get install mysql-server rabbitmq-server pdns-server pdns-backend-mysql
|
||||
|
||||
.. _install-ubuntu-prereq-setup-rabbitmq:
|
||||
|
||||
RabbitMQ
|
||||
^^^^^^^^
|
||||
|
||||
.. note::
|
||||
|
||||
Do the following commands as "root" or via sudo <command>
|
||||
|
||||
Create a user:
|
||||
|
||||
::
|
||||
|
||||
$ rabbitmqctl add_user designate designate
|
||||
|
||||
Give the user access to the / vhost:
|
||||
|
||||
::
|
||||
|
||||
$ sudo rabbitmqctl set_permissions -p "/" designate ".*" ".*" ".*"
|
||||
|
||||
.. _install-ubuntu-prereq-setup-mysql:
|
||||
|
||||
MySQL
|
||||
^^^^^
|
||||
|
||||
.. note::
|
||||
|
||||
The following commands should be done using the mysql command line or similar.
|
||||
|
||||
Create the MySQL user
|
||||
|
||||
::
|
||||
|
||||
$ mysql -u root -p
|
||||
Enter password: <enter your password here>
|
||||
|
||||
mysql> GRANT ALL ON designate.* TO 'designate'@'localhost' IDENTIFIED BY 'designate';
|
||||
mysql> GRANT ALL ON powerdns.* TO 'powerdns'@'localhost' IDENTIFIED BY 'powerdns';
|
||||
|
||||
Create the database
|
||||
|
||||
::
|
||||
|
||||
mysql> CREATE DATABASE `designate` CHARACTER SET utf8 COLLATE utf8_general_ci;
|
||||
mysql> CREATE DATABASE `powerdns` CHARACTER SET utf8 COLLATE utf8_general_ci;
|
||||
|
||||
.. _install-ubuntu-prereq-pdns:
|
||||
|
||||
PowerDNS
|
||||
^^^^^^^^
|
||||
|
||||
Edit the config::
|
||||
|
||||
$ sudo editor /etc/powerdns/pdns.conf
|
||||
|
||||
Settings::
|
||||
|
||||
launch = gmysql
|
||||
|
||||
Edit the MySQL backend settings::
|
||||
|
||||
$ sudo editor /etc/powerdns/pdns.d/pdns.local.gmysql.conf
|
||||
|
||||
Settings::
|
||||
|
||||
gmysql-host=localhost
|
||||
gmysql-dbname=powerdns
|
||||
gmysql-user=powerdns
|
||||
gmysql-password=powerdns
|
||||
|
||||
Delete a couple unnecessary files::
|
||||
|
||||
$ rm /etc/powerdns/bindbackend.conf
|
||||
$ rm /etc/powerdns/pdns.d/pdns.simplebind.conf
|
||||
|
||||
.. _install-ubuntu-source:
|
||||
|
||||
Installing using Source (Git)
|
||||
=============================
|
||||
|
||||
1. Install pre-requisites:
|
||||
|
||||
::
|
||||
|
||||
$ sudo apt-get install libmysqlclient-dev
|
||||
$ sudo apt-get install git python-dev python-pip
|
||||
$ sudo apt-get build-dep python-lxml
|
||||
|
||||
2. Clone the repository:
|
||||
|
||||
::
|
||||
|
||||
$ git clone https://git.openstack.org/openstack/designate designate
|
||||
|
||||
3. Change directory to the newly cloned repository
|
||||
|
||||
::
|
||||
|
||||
$ cd designate
|
||||
|
||||
4. Checking out a specific version:
|
||||
|
||||
In some cases you might want to pin the repository version to a specific version of the repository like a stable one.
|
||||
|
||||
Example for the Juno release:
|
||||
|
||||
::
|
||||
|
||||
$ git checkout stable/juno
|
||||
|
||||
3. Install all dependencies using pip
|
||||
|
||||
::
|
||||
|
||||
$ sudo pip install -r requirements.txt
|
||||
$ sudo pip install MySQL-python
|
||||
|
||||
4. Install Designate:
|
||||
|
||||
::
|
||||
|
||||
$ sudo python setup.py develop
|
||||
|
||||
5. Copy over configuration files
|
||||
|
||||
::
|
||||
|
||||
$ sudo cp -R etc/designate /etc/
|
||||
$ ls /etc/designate/*.sample | while read f; do sudo cp $f $(echo $f | sed "s/.sample$//g"); done
|
||||
|
||||
Create directories
|
||||
^^^^^^^^^^^^^^^^^^
|
||||
|
||||
Since we are not running packages some directories are not created for us.
|
||||
|
||||
::
|
||||
|
||||
$ sudo mkdir /var/lib/designate /var/log/designate
|
||||
# Needed if you are running designate as a non root user.
|
||||
$ sudo chown designate /var/lib/designate /var/log/designate
|
||||
|
||||
|
||||
Configuring
|
||||
===========
|
||||
|
||||
Designate
|
||||
^^^^^^^^^
|
||||
|
||||
::
|
||||
|
||||
$ sudo editor /etc/designate/designate.conf
|
||||
|
||||
Copy or mirror the configuration from this sample file here:
|
||||
|
||||
.. literalinclude:: /examples/basic-config-sample-juno.conf
|
||||
:language: ini
|
||||
|
||||
Sync Database schemas
|
||||
^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
Initialize and sync the database schemas for Designate and PowerDNS::
|
||||
|
||||
$ designate-manage database sync
|
||||
|
||||
$ designate-manage powerdns sync
|
||||
|
||||
Register Designate with Keystone
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
For howto register Designate with Keystone you can check the code used in the devstack plugin.
|
||||
|
||||
There should be no version registered in the URL for the endpoint.
|
||||
|
||||
Starting the services
|
||||
=====================
|
||||
|
||||
Central::
|
||||
|
||||
$ designate-central
|
||||
|
||||
API::
|
||||
|
||||
$ designate-api
|
||||
|
||||
You should now be able to create zones and use nslookup or dig towards localhost to query pdns for it.
|
@ -79,7 +79,7 @@ Designate Manage Pools Command Reference
|
||||
Update Pools Information
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
.. code-block:: language
|
||||
.. code-block:: console
|
||||
|
||||
designate-manage pool update [options]
|
||||
|
||||
@ -103,7 +103,7 @@ Options:
|
||||
Generate YAML File
|
||||
^^^^^^^^^^^^^^^^^^
|
||||
|
||||
.. code-block:: language
|
||||
.. code-block:: console
|
||||
|
||||
designate-manage pool generate_file [options]
|
||||
|
||||
@ -115,7 +115,7 @@ Options:
|
||||
Generate YAML File from Liberty Config
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
.. code-block:: language
|
||||
.. code-block:: console
|
||||
|
||||
designate-manage pool export_from_config [options]
|
||||
|
||||
|
@ -45,7 +45,8 @@ in-tree=True
|
||||
[backends]
|
||||
backend-impl-bind9=Bind9
|
||||
backend-impl-powerdns-mysql=Power DNS (MySQL)
|
||||
backend-impl-powerdns-pgsql=Power DNS (pgSQL)
|
||||
backend-impl-designate=Designate to Designate
|
||||
backend-impl-dynect=DynECT
|
||||
backend-impl-dynect=DynECT
|
||||
backend-impl-akamai=Akamai eDNS
|
||||
backend-impl-msdns=Microsoft DNS Server
|
||||
@ -59,6 +60,8 @@ backend-impl-denominator=Denominator
|
||||
|
||||
[backends.backend-impl-powerdns-mysql]
|
||||
|
||||
[backends.backend-impl-designate]
|
||||
|
||||
[backends.backend-impl-powerdns-pgsql]
|
||||
status=untested
|
||||
|
||||
@ -84,9 +87,10 @@ type=agent
|
||||
|
||||
[backends.backend-impl-msdns]
|
||||
in-tree=False
|
||||
status=untested
|
||||
status=known-broken
|
||||
repository=https://git.openstack.org/openstack/designate-msdnsagent
|
||||
maintainers=Graham Hayes <graham.hayes@hp.com>
|
||||
maintainers=Graham Hayes <graham.hayes@hpe.com>
|
||||
notes=This backend has not been updated to work with the current XFR based backends.
|
||||
|
||||
[grades]
|
||||
valid-grades=integrated,master-compatible,release-compatible,untested,failing,known-broken
|
||||
@ -95,28 +99,34 @@ valid-grades=integrated,master-compatible,release-compatible,untested,failing,kn
|
||||
title=Integrated
|
||||
notes=Tested on every commit by the OpenStack CI Infrastructure, and maintained by designate developers as a reference backend
|
||||
in-tree=True
|
||||
css-class=success
|
||||
|
||||
[grades.master-compatible]
|
||||
title=Master Compatible
|
||||
notes=Tested on every commit by 3rd party testing, and has a person or group dedicated to maintaining compatibility on a regular basis
|
||||
in-tree=optional
|
||||
css-class=success
|
||||
|
||||
[grades.release-compatible]
|
||||
title=Release Compatible
|
||||
notes=Not necessarily tested on every commit, but has a maintainer committed to ensuring compatibility for each release
|
||||
in-tree=optional
|
||||
css-class=success
|
||||
|
||||
[grades.untested]
|
||||
title=Untested
|
||||
notes=All other backends in the designate repository
|
||||
in-tree=optional
|
||||
css-class=info
|
||||
|
||||
[grades.failing]
|
||||
title=Failing
|
||||
notes=Backends that were previously "Compatible", but tests are now failing on a regular basis.
|
||||
in-tree=optional
|
||||
css-class=warning
|
||||
|
||||
[grades.known-broken]
|
||||
title=Known Broken
|
||||
notes=Backends that do not work, and have been broken with no sign of any fixes
|
||||
in-tree=optional
|
||||
css-class=danger
|
||||
|
Loading…
Reference in New Issue
Block a user