#ansible #aws-cli #aws-ssm
Вопрос:
Я пытаюсь выполнить команду ниже.
- name: Update patch-baseline command: gt; aws ssm update-patch-baseline --baseline-id "pb-038faee968a" --approval-rules "PatchRules=[{PatchFilterGroup={PatchFilters=[{Key=SEVERITY,Values=[Critical,Important,Moderate]},{Key=CLASSIFICATION,Values=[Security]}]},ApproveUntilDate=2021-12-31}]" --profile temp --region us-east-1 environment: AWS_SHARED_CREDENTIALS_FILE: "{{ temp.path }}" delegate_to: awx04.local remote_user: ec2-user
Это приводит меня к ошибке ниже, но когда я запускаю эту команду в AWS CLI непосредственно на сервере, она работает отлично. есть какие-нибудь идеи?
Ошибка проверки параметров: Отсутствует требуемый параметр в Правилах утверждения.PatchRules[0]: Неизвестный параметр «ApproveAfterDays» в правилах утверждения.PatchRules[0]: «Дата утверждения», должно быть одним из следующих: PatchFilterGroup, уровень соответствия, Дни утверждения, EnableNonSecurity
Комментарии:
1. Я бы предположил, что это связано с тем, что версия awscli отличается, поскольку (AFAIK) она использует файлы JSON на диске для проверки этих полезных нагрузок; может быть, попробуйте
aws --version
посмотреть, что она сообщает2. aws-cli/1.19.51 Python/3.6.8 Linux/4.18.0-305.19.1.el8_4.x86_64 ботокор/1.20.51 но этот сервер может запускать мою команду с помощью интерфейса командной строки, почему бы и нет, когда мы бежим из ansible tower на этот сервер.
3. Вы неправильно поняли, я имел в виду, чтобы ваш игровой сборник выполнил эту команду и сравнил ее с тем, что вы получаете «на сервере». Единственная правдоподобная причина, по которой один awscli будет работать с этой командой, а не с другой, заключается в том, что они являются разными установками, но просто запускаются
aws
молча, выбирая первую версию наPATH