[colug-432] configuration management tools

Jeff Frontz jeff.frontz at gmail.com
Mon Sep 23 13:08:08 EDT 2019


Oooh, salt can query sqlite3 (and mysql) natively:
https://docs.saltstack.com/en/latest/ref/modules/all/salt.modules.sqlite3.html
Does that do what I think it does (namely, return info in a tuple and allow
iteration internally)?

On Mon, Sep 23, 2019 at 12:55 PM Jeff Frontz <jeff.frontz at gmail.com> wrote:

> [I'm skipping the delivery/enforcement stuff since that's being solved in
> Other Ways; I'm focused on the data population problem.]
>
> On Mon, Sep 23, 2019 at 12:12 PM Rick Hornsby <richardjhornsby at gmail.com>
> wrote:
>
>>
>> On September 23, 2019 at 9:20:16 AM, Jeff Frontz (jeff.frontz at gmail.com)
>> wrote:
>>
>> I have a need to generate configuration files for a bunch of different
>> (some open-source, some semi-proprietary) applications that run on a bunch
>> of different systems.
>>
>> For configuration files, (this is just one way to do it) I can create a
>> template file that looks like the final config format - be that JSON, TOML,
>> yaml, whatever. I put placeholders (variable) where I want to dynamically
>> set a value. Then in the Chef/Puppet code, I say something like
>>
>> template ‘/opt/someapp/config/urmom.json’
>> source ‘template_source.json.erb'
>> variables( pancakes: ‘yes’ )
>>
>>
>>
> OK, so the problem space is more like
>
>           template '/CI/src/***SPECIFIC-NODE-NAME***/BFT.json'
>                    source `BFT-template.json`
>                    variables(iterator:serviceTuple: 'select peerID,
> service-identifier-node, service identifier-port from mondo-table where
> node != ***SPECIFIC-NODE-NAME***')
>
> where BFT-template.json might be something like (please pardon my JSON
> ignorance):
>
>             ...yada yada yada...
>           CommonItems {
>                   "lotsa":"stuff",
>                },
>             PeerItems {
>                    [foreach:serviceTuple]
>                         {
>                          "peerName":"**peerID**",
>                          "peerNode":"**service-identifier-node**",
>                          "peerPort":"**peer-service-1-field**",
>                         },
>                    [endfor]
>
>                ... yada yada yada...
>
>
> Do any of these tools/solutions support complex operations like "run a
> select from a table and iterate over the results to add/populate fields to
> the template"?
>
>
>
>
>
>> I need to configure the applications on the other hosts to use the each
>> of the destination hosts' services.
>>
>> One thing you may be looking for is service discovery.
>>
>  For more Reasons, it needs to be deterministic/stable at config
> distribution time (and beyond) so having peers advertise (and be
> dynamically discovered) isn't in the cards.
>
>
> Thanks,
> Jeff
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.colug.net/pipermail/colug-432/attachments/20190923/0fc06d30/attachment-0001.html 


More information about the colug-432 mailing list