Шаблон мастера развертывания GCP не может создать помеченный брандмауэр - PullRequest
0 голосов
/ 07 мая 2019

Я пытаюсь развернуть виртуальную машину Linux с тегом «http» и создать брандмауэр, чтобы разрешить HTTP-порту 80 доступ как теговый брандмауэр «http». ВМ развертывается, но внешний доступ к ней не работает. Также дал скрипт запуска для ВМ, но он не работает

resources:
- type: compute.v1.instance
  name: vm-test
  properties:
    metadata:
      items:
      - key: startup-script-url
        value: https://storage.googleapis.com/cf405bucket/install-web.sh
    zone: {{ properties["zone"] }}
    machineType: https://www.googleapis.com/compute/v1/projects/{{ env["project"] }}/zones/{{ properties["zone"] }}/machineTypes/n1-standard-2
    # For examples on how to use startup scripts on an instance, see:
    #   https://cloud.google.com/compute/docs/startupscript
    tags:
      items: ["http"]
    disks:
    - deviceName: boot
      type: PERSISTENT
      boot: true
      autoDelete: true
      initializeParams:
        diskName: disk-{{ env["deployment"] }}
        sourceImage: https://www.googleapis.com/compute/v1/projects/debian-cloud/global/images/family/debian-9
    networkInterfaces:
    - network: https://www.googleapis.com/compute/v1/projects/{{ env["project"] }}/global/networks/default
      # Access Config required to give the instance a public IP address
      accessConfigs:
      - name: External NAT
        type: ONE_TO_ONE_NAT
- type: compute.v1.firewall
  name: default-allow-http
  properties:
    sourceRanges: ["0.0.0.0/0"]
    network: https://www.googleapis.com/compute/v1/projects/{{ env["project"] }}/global/networks/default 
    targetTags: ["http"]
    allowed:
    - IPProtocol: TCP
      ports: ["80"]

1 Ответ

0 голосов
/ 04 июня 2019

Попробуйте использовать SSH в созданном экземпляре виртуальной машины развертывания и выполните команду apache2 --version.

Что происходит? Я предполагаю, что вам скажут, что это не распознанная команда или что-то в этом роде ... учитывая, что веб-сервер по какой-то причине не установлен. Если это так, возможно, попробуйте обновить install-web.sh , чтобы включить sudo перед командами, т.е.

#!/bin/bash
sudo apt-get update
sudo apt-get install -y apache2

Если это не так, почему бы вообще не исключить файл install-web.sh и просто включить скрипт в файл конфигурации напрямую (так как в этом нет ничего особенного), например, что-то вроде:

    metadata:
     items:
     - key: startup-script
       value: |
          #!/bin/bash
          apt-get update
          apt-get install -y apache2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...