#google-cloud-platform #ansible #google-compute-engine
#google-облачная платформа #ansible #google-вычислительный движок
Вопрос:
Я попытался создать серверную службу gcp. Для этого используется приведенный ниже модуль ansible:
google.cloud.gcp_compute_backend_service
который создает серверную службу, но securitypolicy
она не назначена.
- name: create a global backend service
google.cloud.gcp_compute_backend_service:
name: test
protocol: **
load_balancing_scheme: EXTERNAL
backends: **
security_policy: armor_ssl_policy_1
enable_cdn: no
state: present
project: test
auth_kind: "serviceaccount"
service_account_file: ouauthfile
.
.
.
Не уверен, где я делаю неправильно, может кто-нибудь, пожалуйста, поправьте?
Я также пытался передать string и selflink, но с ними не повезло.
Комментарии:
1. Просто взглянув на предоставленный вами код, все кажется правильным, можете ли вы поделиться некоторыми сообщениями об ошибках или журналами? Создается ли служба вообще?
2. Спасибо @Wojtek_B, мы не видим никакого ответа об ошибке, и серверная часть создается, но политика безопасности не привязывается,
3. Как вы проверили отсутствие политики? Можете ли вы запустить
gcloud compute backend-services describe you-policy-name-here | grep security
и проверить, получаете ли вы какие-либо результаты? Если нет ничего, мы можем попытаться покопаться в Ansible тогда.4. получил подробности.. безопасность не отображается
5. Я действительно смог воспроизвести вашу проблему — служба создается, но без назначения политики в зависимости от
security_policy
параметра. однако вы пытаетесь назначить политику SSL, которая может применяться только к интерфейсам. Какую политику вы хотите назначить??
Ответ №1:
Я попытался создать серверную службу GCP с помощью Ansible так же, как и вы, и мне это удалось, однако произошло то же самое — он был создан без назначенной политики безопасности.
У меня уже была создана группа экземпляров и проверка работоспособности, поэтому я сосредоточился только на сервисе; мой playbook
выглядел так:
- name: Create Backend Service
hosts: localhost
vars:
service_account_file: /home/wb/key.json
project: xxxx
auth_kind: serviceaccount
scopes:
- https://www.googleapis.com/auth/compute
tasks:
- name: create a backend service
gcp_compute_backend_service:
name: ansible-service
security_policy: test-pol
backends:
- group: "https://www.googleapis.com/compute/v1/projects/xxxx/zones/europe-central2-a/instan$
health_checks:
- "https://www.googleapis.com/compute/v1/projects/xxxx/global/healthChecks/ssh-hc"
enable_cdn: 'false'
project: "{{ project }}"
auth_kind: "{{ auth_kind }}"
service_account_file: "{{ service_account_file }}"
scopes: "{{ scopes }}"
state: present
Служба создается, но политика безопасности не назначена.
securityPolicy
параметр в соответствии с документацией Ansible — это string
тип. Я пытался использовать ‘ и » — даже полную самоссылку GCP (для политики) без каких-либо успехов или сообщения об ошибке.
Единственный способ (с использованием CLI), который я нашел, чтобы исправить это, — запустить gcloud compute backend-services update ansible-service --security-policy=test-pol
или попробовать вызвать API напрямую (еще не пробовал).
На данный момент, на мой взгляд, существует проблема с модулем ansible, вызывающим GCP API.
Я бы рекомендовал вам сообщить о проблеме в IssueTracker Google, если некоторые функции работают не так, как вы ожидали. Вы также можете попробовать сообщить об этом команде Ansible и сослаться на проблему в IssueTracker (если вы решите сообщить об этом), чтобы они могли даже общаться во время процесса.
Комментарии:
1. точно.. это проблема с модулем @wojtek, мне нужно назначить api Google.. спасибо за поддержку