我目前正在努力通过进行Cloud NAT
配置。gcp
ansible
我可以按照文档中所述设置 Cloud NAT:https://cloud.google.com/nat/docs/gke-example使用gcloud
命令,基本上执行三个步骤,,,,create bastion
按预期工作。create router
configure NAT of created router
因此我手动执行了以下命令:
gcloud compute instances create bastion-1
...gcloud compute routers create nat-router
...gcloud compute routers nats create nat-config
...
其余...
带有区域等的命令可能对于该问题来说不是必需的。
现在我想创建一个 ansible 角色来执行相同操作。目前,我能够通过模块创建堡垒主机:
gcp_compute_disk
gcp_compute_network
gcp_compute_instance
以及路由器本身
gcp_compute_router
这样步骤 1 和 2 就完成了。但是,我不知道是否可以通过 ansible 配置路由器的 NAT。我在 google cloud 模块列表中找不到相应的模块https://docs.ansible.com/ansible/latest/modules/list_of_cloud_modules.html#google或相关字段来设置gcp_compute_router
或在模块https://docs.ansible.com/ansible/latest/modules/gcp_compute_router_module.html#gcp-compute-router-module。
现在我的问题是:是否可以通过 ansible 配置 gcp Cloud NAT,如果可以,我是否必须在剧本中执行 shell 命令,或者是否有可以使用的模块?我是否忽略了什么?
如果任何信息缺失或不相关,或者我应该扩展示例代码部分,请告诉我,以便我可以编辑我的问题。
答案1
似乎 Ansible 尚未在 GCP 的现有模块中实现该功能。您可以通过运行显式 gcp 命令来完成缺少的步骤来解决此问题,在将 Ansible 作为剧本上的命令运行的机器上,检查这些例子