| |
@@ -0,0 +1,295 @@
|
| |
+ # 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
|
| |
+
|
| |
Is this repeatable or do we need always do a git clean before next run?