Мой код выдает ошибку, когда достигает этой строки:
{% set encrypted_password = salt['cmd.run']('openssl enc -aes-128-cbc -a -salt -md md5 -in <(echo -n "' + ssm_plaintext_password +'") -pass pass:'+random_password) %}
Ошибка:
[ERROR ] Command '[u'openssl', u'enc', u'-aes-128-cbc', u'-a', u'-salt', u'-md', u'md5', u'-in', u'<(echo', u'-n', u'g0vknM6a%,)', u'-pass', u'pass:zHwhIwKesJVXZO9taCHuEVGSPTW3J95g']' failed with return code: 1
[ERROR ] stdout: unknown option '-n'
Но когда я запускаю команду openssl enc -aes-128-cbc -a -salt -md md5 -in <(echo -n "g0vknM6a%,") -pass pass: zHwhIwKesJVXZO9taCHuEVGSPTW3J95g это дает мне вход.
Я выполняю это в Amazon Linux2 основанный экземпляр, имеющий Python3 и солонка 2019.2.0 (фтор) . Это связано с какими-либо изменениями двоичной версии, поскольку этот код отлично работал с Amazon Linux1
Добавить python_shell=True
возможность cmd.run
.
У меня есть решение: https://github.com/saltstack/salt/issues/44226.
Я заменил cmd.run на cmd.shell, и у меня это отлично работает.