Используя Ansible, как я могу запустить экземпляр виртуальной машины GCP, который в данный момент остановлен? - PullRequest
0 голосов
/ 10 июля 2020

У меня есть остановленный экземпляр виртуальной машины GCP Compute Engine. Как я могу запустить его, в частности, используя Ansible?

Обратите внимание, что это должно быть в отдельном Ansible playbook, в отличие от playbook, в котором была создана виртуальная машина.

Ответы [ 2 ]

2 голосов
/ 10 июля 2020

Ansible не может подключиться к вашему устройству (или машине), если ваш процесс SSHD отключен.

так как Ansible может подключиться к вашему устройству (или машине), если не только процесс SSHD отключен, но при этом вся машина выключена?

Ansible подключается от вашего имени к вашей машине и проверяет, соответствует ли желаемое состояние фактическому состоянию.

Однако у вас есть решение, поскольку вы имеете дело с IaaS.

В этом случае вам нужно настроить таргетинг на ваш localhost и вызвать модуль gcp_compute_instance с status: RUNNING

- name: create a instance
  gcp_compute_instance:
    name: test_object
    machine_type: n1-standard-1
    #. ...
    status: RUNNING # <-- this is what u need

Убедитесь, что у вас установлено ansible 2,8 или выше , иначе в предыдущих версиях нет параметра с именем status.

1 голос
/ 10 июля 2020

Спасибо @ abdennour-toumi.

Правильно, статус: RUNNING работает хорошо.

Обязательно установите параметр deletion_protection, иначе playbook выйдет из строя.

---
- name: Start a GCP instance which is currently stopped
  hosts: to_start_up
  gather_facts: false

  tasks:

    - name: Start a GCP VM instance which is currently stopped
      gcp_compute_instance:
        name: "{{ inventory_hostname_short }}"
        deletion_protection: no
        machine_type: "{{ gcp_ce_machine_type }}"
        zone: "{{ gcp_ce_zone }}"
        project: "{{ gcp_ce_project_name }}"
        auth_kind: serviceaccount
        service_account_file: "{{ gcp_ce_service_account_keyfile }}"
        status: RUNNING
      delegate_to: localhost
...