golden hour
/opt/saltstack/salt/lib/python3.10/site-packages/salt/pillar
⬆️ Go Up
Upload
File/Folder
Size
Actions
__init__.py
50.98 KB
Del
OK
__pycache__
-
Del
OK
azureblob.py
13.88 KB
Del
OK
cmd_json.py
787 B
Del
OK
cmd_yaml.py
893 B
Del
OK
cmd_yamlex.py
674 B
Del
OK
cobbler.py
1.64 KB
Del
OK
confidant.py
3.29 KB
Del
OK
consul_pillar.py
11.61 KB
Del
OK
csvpillar.py
1.85 KB
Del
OK
digicert.py
1007 B
Del
OK
django_orm.py
7.74 KB
Del
OK
ec2_pillar.py
10.08 KB
Del
OK
etcd_pillar.py
4.04 KB
Del
OK
extra_minion_data_in_pillar.py
2.18 KB
Del
OK
file_tree.py
18.03 KB
Del
OK
foreman.py
3.66 KB
Del
OK
git_pillar.py
19.61 KB
Del
OK
gpg.py
560 B
Del
OK
hg_pillar.py
3.2 KB
Del
OK
hiera.py
846 B
Del
OK
http_json.py
3.37 KB
Del
OK
http_yaml.py
3.08 KB
Del
OK
libvirt.py
5.78 KB
Del
OK
makostack.py
21.99 KB
Del
OK
mongo.py
6.05 KB
Del
OK
mysql.py
3.76 KB
Del
OK
nacl.py
744 B
Del
OK
netbox.py
36.22 KB
Del
OK
neutron.py
2.41 KB
Del
OK
nodegroups.py
1.7 KB
Del
OK
pepa.py
20.99 KB
Del
OK
pillar_ldap.py
10.82 KB
Del
OK
postgres.py
2.82 KB
Del
OK
puppet.py
846 B
Del
OK
reclass_adapter.py
4 KB
Del
OK
redismod.py
3.28 KB
Del
OK
rethinkdb_pillar.py
4.71 KB
Del
OK
s3.py
14.4 KB
Del
OK
saltclass.py
1.49 KB
Del
OK
sql_base.py
16.51 KB
Del
OK
sqlcipher.py
3.42 KB
Del
OK
sqlite3.py
2.67 KB
Del
OK
stack.py
22.92 KB
Del
OK
svn_pillar.py
5.74 KB
Del
OK
varstack_pillar.py
1.1 KB
Del
OK
vault.py
6.54 KB
Del
OK
venafi.py
966 B
Del
OK
virtkey.py
586 B
Del
OK
vmware_pillar.py
16.83 KB
Del
OK
Edit: etcd_pillar.py
""" Use etcd data as a Pillar source .. versionadded:: 2014.7.0 :depends: - python-etcd or etcd3-py In order to use an etcd server, a profile must be created in the master configuration file: .. code-block:: yaml my_etcd_config: etcd.host: 127.0.0.1 etcd.port: 4001 In order to choose whether to use etcd API v2 or v3, you can put the following configuration option in the same place as your etcd configuration. This option defaults to true, meaning you will use v2 unless you specify otherwise. .. code-block:: yaml etcd.require_v2: True When using API v3, there are some specific options available to be configured within your etcd profile. They are defaulted to the following... .. code-block:: yaml etcd.encode_keys: False etcd.encode_values: True etcd.raw_keys: False etcd.raw_values: False etcd.unicode_errors: "surrogateescape" ``etcd.encode_keys`` indicates whether you want to pre-encode keys using msgpack before adding them to etcd. .. note:: If you set ``etcd.encode_keys`` to ``True``, all recursive functionality will no longer work. This includes ``tree`` and ``ls`` and all other methods if you set ``recurse``/``recursive`` to ``True``. This is due to the fact that when encoding with msgpack, keys like ``/salt`` and ``/salt/stack`` will have differing byte prefixes, and etcd v3 searches recursively using prefixes. ``etcd.encode_values`` indicates whether you want to pre-encode values using msgpack before adding them to etcd. This defaults to ``True`` to avoid data loss on non-string values wherever possible. ``etcd.raw_keys`` determines whether you want the raw key or a string returned. ``etcd.raw_values`` determines whether you want the raw value or a string returned. ``etcd.unicode_errors`` determines what you policy to follow when there are encoding/decoding errors. After the profile is created, configure the external pillar system to use it. Optionally, a root may be specified. .. code-block:: yaml ext_pillar: - etcd: my_etcd_config ext_pillar: - etcd: my_etcd_config root=/salt Using these configuration profiles, multiple etcd sources may also be used: .. code-block:: yaml ext_pillar: - etcd: my_etcd_config - etcd: my_other_etcd_config The ``minion_id`` may be used in the ``root`` path to expose minion-specific information stored in etcd. .. code-block:: yaml ext_pillar: - etcd: my_etcd_config root=/salt/%(minion_id)s Minion-specific values may override shared values when the minion-specific root appears after the shared root: .. code-block:: yaml ext_pillar: - etcd: my_etcd_config root=/salt-shared - etcd: my_other_etcd_config root=/salt-private/%(minion_id)s Using the configuration above, the following commands could be used to share a key with all minions but override its value for a specific minion:: etcdctl set /salt-shared/mykey my_value etcdctl set /salt-private/special_minion_id/mykey my_other_value """ import logging try: import salt.utils.etcd_util if salt.utils.etcd_util.HAS_ETCD_V2 or salt.utils.etcd_util.HAS_ETCD_V3: HAS_LIBS = True else: HAS_LIBS = False except ImportError: HAS_LIBS = False __virtualname__ = "etcd" # Set up logging log = logging.getLogger(__name__) def __virtual__(): """ Only return if python-etcd is installed """ return __virtualname__ if HAS_LIBS else False def ext_pillar(minion_id, pillar, conf): # pylint: disable=W0613 """ Check etcd for all data """ comps = conf.split() profile = None if comps[0]: profile = comps[0] client = salt.utils.etcd_util.get_conn(__opts__, profile) path = "/" if len(comps) > 1 and comps[1].startswith("root="): path = comps[1].replace("root=", "") # put the minion's ID in the path if necessary path %= {"minion_id": minion_id} try: pillar = salt.utils.etcd_util.tree(client, path) except KeyError: log.error("No such key in etcd profile %s: %s", profile, path) pillar = {} return pillar
Save