salt.modules.mod_random

Provides access to randomness generators.

New in version 2014.7.0.

salt.modules.mod_random.get_str(length=20, chars=None, lowercase=True, uppercase=True, digits=True, punctuation=True, whitespace=False, printable=False)

New in version 2014.7.0.

Changed in version 3004: Changed the default character set used to include symbols and implemented arguments to control the used character set.

Returns a random string of the specified length.

length20

Any valid number of bytes.

charsNone

New in version 3004.

String with any character that should be used to generate random string.

This argument supersedes all other character controlling arguments.

lowercaseTrue

New in version 3004.

Use lowercase letters in generated random string. (see string.ascii_lowercase)

This argument is superseded by chars.

uppercaseTrue

New in version 3004.

Use uppercase letters in generated random string. (see string.ascii_uppercase)

This argument is superseded by chars.

digitsTrue

New in version 3004.

Use digits in generated random string. (see string.digits)

This argument is superseded by chars.

printableFalse

New in version 3004.

Use printable characters in generated random string and includes lowercase, uppercase, digits, punctuation and whitespace. (see string.printable)

It is disabled by default as includes whitespace characters which some systems do not handle well in passwords. This argument also supersedes all other classes because it includes them.

This argument is superseded by chars.

punctuationTrue

New in version 3004.

Use punctuation characters in generated random string. (see string.punctuation)

This argument is superseded by chars.

whitespaceFalse

New in version 3004.

Use whitespace characters in generated random string. (see string.whitespace)

It is disabled by default as some systems do not handle whitespace characters in passwords well.

This argument is superseded by chars.

CLI Example:

salt '*' random.get_str 128
salt '*' random.get_str 128 chars='abc123.!()'
salt '*' random.get_str 128 lowercase=False whitespace=True
salt.modules.mod_random.hash(value, algorithm='sha512')

New in version 2014.7.0.

Encodes a value with the specified encoder.

value

The value to be hashed.

algorithmsha512

The algorithm to use. May be any valid algorithm supported by hashlib.

CLI Example:

salt '*' random.hash 'I am a string' md5
salt.modules.mod_random.rand_int(start=1, end=10, seed=None)

Returns a random integer number between the start and end number.

New in version 2015.5.3.

start1

Any valid integer number

end10

Any valid integer number

seed :

Optional hashable object

Changed in version 2019.2.0: Added seed argument. Will return the same result when run with the same seed.

CLI Example:

salt '*' random.rand_int 1 10
salt.modules.mod_random.sample(value, size, seed=None)

Return a given sample size from a list. By default, the random number generator uses the current system time unless given a seed value.

New in version 3005.

value

A list to e used as input.

size

The sample size to return.

seed

Any value which will be hashed as a seed for random.

CLI Example:

salt '*' random.sample '["one", "two"]' 1 seed="something"
salt.modules.mod_random.seed(range=10, hash=None)

Returns a random number within a range. Optional hash argument can be any hashable object. If hash is omitted or None, the id of the minion is used.

New in version 2015.8.0.

hash: None

Any hashable object.

range: 10

Any valid integer number

CLI Example:

salt '*' random.seed 10 hash=None
salt.modules.mod_random.shadow_hash(crypt_salt=None, password=None, algorithm='sha512')

Generates a salted hash suitable for /etc/shadow.

crypt_saltNone

Salt to be used in the generation of the hash. If one is not provided, a random salt will be generated.

passwordNone

Value to be salted and hashed. If one is not provided, a random password will be generated.

algorithmsha512

Hash algorithm to use.

CLI Example:

salt '*' random.shadow_hash 'My5alT' 'MyP@asswd' md5
salt.modules.mod_random.shuffle(value, seed=None)

Return a shuffled copy of an input list. By default, the random number generator uses the current system time unless given a seed value.

New in version 3005.

value

A list to be used as input.

seed

Any value which will be hashed as a seed for random.

CLI Example:

salt '*' random.shuffle '["one", "two"]' seed="something"
salt.modules.mod_random.str_encode(value, encoder='base64')

New in version 2014.7.0.

value

The value to be encoded.

encoderbase64

The encoder to use on the subsequent string.

CLI Example:

salt '*' random.str_encode 'I am a new string' base64