Blob Blame History Raw
# This file is a well-documented, and commented out (mostly) file, which
# covers the configuration options available in LinchPin
#
# Used to override default configuration settings for LinchPin
# Defaults exist in linchpin/linchpin.constants file
#
# Uncommented options enable features found in v1.5.1 or newer and
# can be turned off by commenting them out.
#
# structured in INI style
# use %% to allow code interpolation
# use % to use config interpolation
#

[DEFAULT]
# name of the python package (Redundant, but easier than programmatically
# obtaining the value. It's very unlikely to change.)
pkg = linchpin

# Useful for storing the RunDB or other components like global credentials
# travis-ci doesn't like ~/.config/linchpin, use /tmp
#default_config_path = ~/.config/linchpin

# When creating an provider not already included in LinchPin, this path
# extends where LinchPin will look to run the appropriate playbooks
#external_providers_path = %(default_config_path)s/linchpin-x

# When adding anything to the lp section, it should be general for
# the entire application.
[lp]

# load custom ansible modules from here
#module_folder = library

# rundb tracks provisioning transactions
# If you add a new one, rundb/drivers.py needs to be updated to match
# rundb_conn is the location of the run database.
# A common reason to move it is to use the rundb centrally across
# the entire system, or in a central db on a shared filesystem.
# System-wide RunDB: rundb_conn = ~/.config/linchpin/rundb-::mac::.json
#rundb_conn = {{ workspace }}/.rundb/rundb-::mac::.json
rundb_conn = ~/.config/linchpin/rundb-::mac::.json

# name the type of Run database. Currently only TinyRunDB exists
#rundb_type = TinyRunDB

# How to connect to the RunDB, if it's on a separate server,
# it may be tcp or ssh
#rundb_conn_type = file

# The schema is used because TinyDB is a NoSQL db. Another DB
# may use this as a way to manage fields in a specific table.
#rundb_schema = {"action": "",
#                "inputs": [],
#                "outputs": [],
#                "start": "",
#                "end": "",
#                "rc": 0,
#                "uhash": ""}

# each entry in the RunDB contains a unique-ish hash (uhash). This
# sets the hashing mechanism used to generate the uhash.
#rundb_hash = sha256

# The default dateformat used in LinchPin. Specifically used in the
# RunDB for recording start and end dates, but also used elsewhere.
#dateformat = %%m/%%d/%%Y %%I:%%M:%%S %%p

# The name of the pinfile. Someone could adjust this and use TopFile
# or somesuch. The ramifications of this would mean that the file in
# the workspace that linchpin reads would change to this value.
#default_pinfile = PinFile

# By default, whenever linchpin performs an action
# (linchpin up/linchpin destroy), the data is read from the PinFile.
# Enabling 'use_rundb_for_actions' will allow destroy and certain up
# actions (specifically when using --run-id or --tx-id) to pull data
# from the RunDB instead.
#use_rundb_for_actions = False
use_rundb_for_actions = True

# A user can request specific data distilled from the RunDB. This flag
# enables the Context Distiller.
# NOTE: This flag requires generate_resources = False.
#distill_data = False
distill_data = True

# If desired, enabling distill_on_error will distill any successfully (and
# possibly failed) provisioned resources. This is predicated on the data
# being written to the RunDB (usually means _async tasks may never record
# data upon failure).
distill_on_error = False

# User can make linchpin use the actual return codes for final return code
# if enabled True, even if one target provision is successfull linchpin 
# returns exit code zero else returns the sum of all the return codes
# use_actual_rcs = False

# LinchPin sets several extra_vars (evars) that are passed to the playbooks.
# This section controls those items.
[evars]

# enables the ansible --check option
# _check_mode = False

# enables the ansible async ability. For some providers, it allows multiple
# provisioning tasks to happen at once, then will collect the data afterward.
# The default is perform the provision actions in serial.
#_async = False

# How long to wait before failing (in seconds) for an async task.
#async_timeout = 1000

# the uhash value will still exist, but will not be added to
# instances or the inventory_path
#enable_uhash = False
enable_uhash = True

# in older versions of linchpin (<v1.0.4), a resources folder exists, which
# dumped the data that is now stored in the RunDB. To disable the resources
# output, set the value to False.
#generate_resources = True
generate_resources = False

# default paths in playbooks
#
# lp_path = <src_dir>/linchpin
# determined in the load_config method of # linchpin.cli.LinchpinCliContext

# Each of the following items controls the path (usually along with the
# default values below) to the corresponding item.

# In the workspace (generally), this is the location of the layouts and
# topologies looked up by the PinFile. If either of these change, the
# value in linchpin/templates must also change.
#layouts_folder = layouts
#topologies_folder = topologies

# The relative location for hooks
#hooks_folder = hooks

# The relative location for provider roles
#roles_folder = roles

# The relative location for storing inventories
#inventories_folder = inventories

# The relative location for resources output (deprecated)
#resources_folder = resources

# The relative location to find schemas (deprecated)
#schemas_folder = schemas

# The relative location to find playbooks
#playbooks_folder = provision

# The default path to schemas for validation (deprecated)
#default_schemas_path = {{ lp_path }}/defaults/%(schemas_folder)s

# The default path to topologies if they aren't in the workspace
#default_topologies_path = {{ lp_path }}/defaults/%(topologies_folder)s

# The default path to inventory layouts if they aren't in the workspace
#default_layouts_path = {{ lp_path }}/defaults/%(layouts_folder)s

# The default path for outputting ansible static inventories
#default_inventories_path = {{ lp_path }}/defaults/%(inventories_folder)s

# The default path to the ansible roles which control the providers
#default_roles_path = {{ lp_path }}/%(playbooks_folder)s/%(roles_folder)s

# In older versions (<1.2.x), the schema was held here. These schemas are
# deprecated.
#schema_v3 = %(default_schemas_path)s/schema_v3.json
#schema_v4 = %(default_schemas_path)s/schema_v4.json

# The location where default credentials data would exist. This path doesn't
# automatically exist
#default_credentials_path = %(default_config_path)s

# If desired, one could overwrite the location of the generated inventory path
#inventory_path = {{ workspace }}/{{inventories_folder}}/happy.inventory

# Libvirt images can be stored almost anywhere (not /tmp).
# Unprivileged users need not setup sudo to manage a path to which they have rights.
# The following are specific settings to manage libvirt images and instances

# the location to store generated ssh keys and the like
#default_ssh_key_path = ~/.ssh

# Where to store the libvirt images for copying/booting instances
#libvirt_image_path = /var/lib/libvirt/images/

# What user to use to access libvirt.
# Using root means sudo without password must be setup
#libvirt_user = root

# When using root or any privileged user, this must be set to yes.
# sudo without password must also be setup
#libvirt_become = yes

# This section covers settings for the `linchpin init` command
#[init]

# source path of files generated by linchpin init
#source = templates/

# formal name of the generated PinFile. Can be changed as desired.
#pinfile = PinFile

# This section covers logging setup
[logger]

# Turns off and on the logger functionality
#enable = True

# Full path to the location of the linchpin log file
file = ~/.config/linchpin/linchpin.log

# Log format used. See https://docs.python.org/2/howto/logging-cookbook.html
#format = %%(levelname)s %%(asctime)s %%(message)s

# Date format used. See https://docs.python.org/2/howto/logging-cookbook.html
#dateformat = %%m/%%d/%%Y %%I:%%M:%%S %%p

# Level of logging provided
#level = logging.DEBUG

# Logging to the console via STDERR
#[console]

# logging to the console should also be possible
# NOTE: Placeholder only, cannot disable.
#enable = True

# Log format used. See https://docs.python.org/2/howto/logging-cookbook.html
#format = %%(message)s

# Level of logging provided
#level = logging.INFO

# LinchPin hooks have several states depending on the action. Currently, there
# are three hook states relating to tasks being completed.
# * up - when performing the up (provision) action
# * destroy - when performing the destroy (teardown) action
# * inv - when performing the internal inventory generation action
#   (currently unimplemented)
#[hookstates]

# when performing the up action, these hooks states are run
#up = pre,post,inv

# when performing the inv action, these hooks states are run
#inv = post

# when performing the destroy action, these hooks states are run
#destroy = pre,post

# This section covers file extensions for generating or looking
# up specific files
#[extensions]

# When looking for provider playbooks, use this extension
#playbooks = .yml

# When generating inventory files, use this extension
#inventory = .inventory

# This section controls the ansible settings for display or other settings
#[ansible]

# If set to true, this enables verbose output automatically to the screen.
# This is equivalent of passing `-v` to the linchpin command line shell.
#console = False

# When linchpin is run, certain states are called at certain points along the
# execution timeline. These STATES are defined below.
#[states]
# in future each state will have comma separated substates

# The name of the state which occurs before (pre) provisioning (up)
#preup = preup

# The name of the state which occurs before (pre) teardown (destroy)
#predestroy = predestroy

# The name of the state which occurs after (post) provisioning (up)
#postup = postup

# The name of the state which occurs after (pre) teardown (destroy)
#postdestroy = postdestroy

# The name of the state which occurs after (post) inventory is generated (inv)
#postinv = inventory