-
Notifications
You must be signed in to change notification settings - Fork 70
/
linchpin.conf
336 lines (250 loc) · 11.2 KB
/
linchpin.conf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
# 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
# enables debug mode, which turns on debugging outputs for certain commands.
#debug_mode = False
# enable authentication debugging mode, where any task related to Linchpin
# authentication will allow logging in verbose mode.
# Note that this feature may cause secret keys to be leaked and therefore
# should not be used in production.
#auth_debug = True
# 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 = {{ workspace }}/inventories/
# 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
# The location where default resources will be dumped. This path doesn't
# automatically exist
#default_resources_path = {{ workspace }}/%(resources_folder)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
# Enables vault encryption
#vault_encryption = False
# Default vault password other than Environment var VAULT_PASSWORD
#vault_pass = ''
# Deafault number of retries on async timeout
#async_retries = 60
# 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 settings for the `linchpin fetch` command
#[fetch]
# If desired, disable the caching functionality
#cache_ws = True
# How long before an update to the destination workspace from the cache
#cache_days = 1
# 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
#This section controls hooks behaviour
#[hookflags]
# no hooks are run when set to True
#no_hooks = False
# Failure of one hook does not effect other hook run when set to True
#ignore_failed_hooks = False