【发布时间】:2017-04-28 19:31:54
【问题描述】:
我有 2 个集群,1 个 Cassandra(4 节点集群)和其他 Kafka(3 节点集群)在 EC2 上。我有一个在 AWS 实例上部署我的微服务的剧本,对于那个微服务剧本,我维护了一个清单文件,它将我的 cassandra/kafka 主机的 IP 地址存储在一个变量中,如下所示:
cassandra_hosts = 'X.X.X.X:9042,X.X.X.X:9042,X.X.X.X:9042,X.X.X.X:9042'
kafka_host = 'X.X.X.X:9092,X.X.X.X:9092,X.X.X.X:9092,X.X.X.X:9092'
微服务剧本大致如下:
- hosts: dynamic_hosts
become: yes
become_user: xxxxxx
become_method: sudo
vars:
ansible_connection: "{{ connection_type }}"
ansible_ssh_user: "{{ ssh_user_name }}"
ansible_ssh_private_key_file: "{{ ssh_private_key_file }}"
tasks:
- name: Register Service as an Upstart
shell: chdir="{{dest_location}}" "./{{upstartscript}}.sh" " -p {{service_port}} -u {{service_uri}} -v {{service_version}} -c {{cassandra_hosts}} -k {{kafka_host}} -l {{log_level}}"
register: escript
- name: Register Service as an Upstart Output
debug:
msg : "{{ escript.stdout }}"
上面的代码是我检索我在库存文件中硬编码的 IP 地址的方式(在代码的第一部分中提到)。
我想要实现的是,如何将我的 AWS 实例的 IP 地址动态存储在我的剧本中并在我的微服务剧本中使用它而不将 IP 地址存储在清单文件中,任何建议
附:如果需要,请您提出任何问题,这是我在这里的第一个问题,提前谢谢
嗨, 我还需要获取kafka集群的输出,但是kafka集群在AWS控制台中以不同的方式输出如下:
||| Outputs
|||
||+---------------------------+-----------------+---------------------------
----------------------------------------------------+||
||| Description | OutputKey |
OutputValue |||
||+---------------------------+-----------------+---------------------------
----------------------------------------------------+||
||| IP of Primary Seed Node | ZookeeperLink |
X.X.X.X:2181,X.X.X.X:2181,X.X.X.X:2181,X.X.X.X:2181
|||
||| IP of Primary Seed Node | Node2DNSName | ip-X-X-X-
X.ec2.internal |||
||| IP of Primary Seed Node | KafkaLink |
X.X.X.X:9092,X.X.X.X:9092,X.X.X.X:9092,X.X.X.X:9092
|||
||| IP of Primary Seed Node | Node3DNSName | ip-X-X-X-
X.ec2.internal |||
||| IP of Primary Seed Node | Node4DNSName | ip-X-X-X-
X.ec2.internal |||
||| IP of Primary Seed Node | Node1DNSName | ip-X-X-X-
X.ec2.internal
我只想输出 KafkaLink 部分的 IP,对此有任何帮助:
X.X.X.X:9092,X.X.X.X:9092,X.X.X.X:9092,X.X.X.X:9092
我尝试了以下命令,但它不起作用:
aws cloudformation describe-stacks --stack-name IngKafkaCluster --query 'Stacks[].Outputs[].OutputValue' --output text
我在上面的命令中得到以下输出,这没有错,但不是我想要的:
X.X.X.X:2181,X.X.X.X:2181,X.X.X.X:2181,X.X.X.X:2181 ip-X-X-X-X.ec2.internal X.X.X.X:9092,X.X.X.X:9092,X.X.X.X:9092,X.X.X.X:9092 ip-X-X-X-X.ec2.internal ip-X-X-X-X.ec2.internal ip-X-X-X-X.ec2.internal
【问题讨论】:
标签: amazon-web-services jenkins ansible microservices