GC 部署管理器使用 Jinja 模板安装 PHP
GC Deployment Manager install PHP with Jinja template
我想通过 Google 云部署管理器部署一个 PHP 应用程序。创建实例后,应在 VM 上安装 PHP(以及其他一些 Linux 软件包)。这在模板文件中可能吗?还是我必须创建自定义 VM 映像?
我只成功创建了虚拟机,但没有找到任何关于如何自动安装包的信息。
{% set COMPUTE_URL_BASE = 'https://www.googleapis.com/compute/v1/' %}
{% set BASE_NAME = env['deployment'] + '-' + env['name'] %}
{% macro GlobalComputeUrl(project, collection, name) -%}
{{ COMPUTE_URL_BASE }}projects/{{ project }}/global/{{ collection }}/{{ name }}
{%- endmacro %}
{% macro ZonalComputeUrl(project, zone, collection, name) -%}
{{ COMPUTE_URL_BASE }}projects/{{ project }}/zones/{{ zone }}/{{ collection }}/{{ name }}
{%- endmacro %}
resources:
- name: {{ BASE_NAME }}
type: compute.v1.instance
properties:
zone: {{ properties['zone'] }}
machineType: {{ ZonalComputeUrl(env['project'], properties['zone'], 'machineTypes', 'e2-micro') }}
metadata:
items:
- key: gce-container-declaration
value: |
{{ imports[properties['containerManifest']]|indent(12) }}
disks:
- deviceName: boot
type: PERSISTENT
autoDelete: true
boot: true
initializeParams:
diskName: {{ BASE_NAME }}-disk
sourceImage: {{ GlobalComputeUrl('cos-cloud', 'images', properties['containerImage']) }}
networkInterfaces:
- accessConfigs:
- name: external-nat
type: ONE_TO_ONE_NAT
network: {{ GlobalComputeUrl(env['project'], 'networks', 'default') }}
serviceAccounts:
- email: default
scopes:
- https://www.googleapis.com/auth/logging.write
- https://www.googleapis.com/auth/monitoring.write
您需要在 Container-Optimized OS 上安装额外的包或工具来执行某些任务,例如调试。虽然 Container-Optimized OS 不包含包管理器,但您可以使用预安装的 toolbox 实用程序来安装任何其他包
或您需要的工具。使用 /usr/bin/toolbox 是安装和 运行 一次性调试工具的首选方法。
Container-Optimized OS 不包含包管理器;因此,您将无法直接在实例上安装软件包。但是,您可以使用 CoreOS toolbox 在隔离容器中安装和 运行 调试和管理工具。
参考link here.
可以使用 DM,但是...您确定要 运行 容器并同时在主机上安装 PHP 吗?如果您要 运行nning 容器,我宁愿添加另一个 PHP 的容器。这更有意义。
无论如何,如果您想在主机上安装 PHP(和其他),您可以使用 metadata.startup-脚本(这里的示例:https://github.com/GoogleCloudPlatform/deploymentmanager-samples/tree/master/examples/v2/metadata_from_file/jinja)。正如@fariya-rahmat 提到的那样 - 可能您想使用不同的 OS。
我想通过 Google 云部署管理器部署一个 PHP 应用程序。创建实例后,应在 VM 上安装 PHP(以及其他一些 Linux 软件包)。这在模板文件中可能吗?还是我必须创建自定义 VM 映像?
我只成功创建了虚拟机,但没有找到任何关于如何自动安装包的信息。
{% set COMPUTE_URL_BASE = 'https://www.googleapis.com/compute/v1/' %}
{% set BASE_NAME = env['deployment'] + '-' + env['name'] %}
{% macro GlobalComputeUrl(project, collection, name) -%}
{{ COMPUTE_URL_BASE }}projects/{{ project }}/global/{{ collection }}/{{ name }}
{%- endmacro %}
{% macro ZonalComputeUrl(project, zone, collection, name) -%}
{{ COMPUTE_URL_BASE }}projects/{{ project }}/zones/{{ zone }}/{{ collection }}/{{ name }}
{%- endmacro %}
resources:
- name: {{ BASE_NAME }}
type: compute.v1.instance
properties:
zone: {{ properties['zone'] }}
machineType: {{ ZonalComputeUrl(env['project'], properties['zone'], 'machineTypes', 'e2-micro') }}
metadata:
items:
- key: gce-container-declaration
value: |
{{ imports[properties['containerManifest']]|indent(12) }}
disks:
- deviceName: boot
type: PERSISTENT
autoDelete: true
boot: true
initializeParams:
diskName: {{ BASE_NAME }}-disk
sourceImage: {{ GlobalComputeUrl('cos-cloud', 'images', properties['containerImage']) }}
networkInterfaces:
- accessConfigs:
- name: external-nat
type: ONE_TO_ONE_NAT
network: {{ GlobalComputeUrl(env['project'], 'networks', 'default') }}
serviceAccounts:
- email: default
scopes:
- https://www.googleapis.com/auth/logging.write
- https://www.googleapis.com/auth/monitoring.write
您需要在 Container-Optimized OS 上安装额外的包或工具来执行某些任务,例如调试。虽然 Container-Optimized OS 不包含包管理器,但您可以使用预安装的 toolbox 实用程序来安装任何其他包 或您需要的工具。使用 /usr/bin/toolbox 是安装和 运行 一次性调试工具的首选方法。
Container-Optimized OS 不包含包管理器;因此,您将无法直接在实例上安装软件包。但是,您可以使用 CoreOS toolbox 在隔离容器中安装和 运行 调试和管理工具。
参考link here.
可以使用 DM,但是...您确定要 运行 容器并同时在主机上安装 PHP 吗?如果您要 运行nning 容器,我宁愿添加另一个 PHP 的容器。这更有意义。
无论如何,如果您想在主机上安装 PHP(和其他),您可以使用 metadata.startup-脚本(这里的示例:https://github.com/GoogleCloudPlatform/deploymentmanager-samples/tree/master/examples/v2/metadata_from_file/jinja)。正如@fariya-rahmat 提到的那样 - 可能您想使用不同的 OS。