我想使用Ansible Playbook在Openshift上部署Pod。
为此,我写了以下戏剧:
- name: Create Deployment Config for the usecase
with_dict: "{{ apps }}"
openshift_v1_deployment_config:
name: "{{ item.key }}"
namespace: "{{ usecaseId }}"
labels:
app: "{{ item.key }}"
service: "{{ item.key }}"
replicas: 1
selector:
app: "{{ item.key }}"
service: "{{ item.key }}"
spec_template_metadata_labels:
app: "{{ item.key }}"
service: "{{ item.key }}"
containers:
- env:
image: "{{ openshift_registry_svc_url }}/{{ usecaseId }}/{{ item.key }}"
name: "{{ item.key }}"
ports:
- container_port: 8080
protocol: TCP
任何人都知道如何使用ansible本身获取已部署的pod的IP地址。TIA
答案 0 :(得分:0)
Shagun,我认为您无法获得集群外部的Pod的IP地址,因为IP由openshift SAN管理,外部世界可以通过路由,端口转发连接到Pod,手动分配服务的外部IP 希望该网址有助于连接到pod https://docs.openshift.com/container-platform/3.5/dev_guide/expose_service/index.html
的方法答案 1 :(得分:0)
最后我找到了。 这可以使用以下由ansible提供的kubernetes模块来完成:k8s
例如:
- name: Fetch all pods which are running
set_fact:
deployments_pod: "{{ lookup('k8s', kind='Pod', namespace=test) }}"