# Ansible Playbook 拼接字符串

目前使用 Playbook 方式进行部署的一般是集群系统，面对不定数量的一组 Host，经常需要利用这一组主机的信息来拼接为一个字符串，以此结果设置为变量，其他需要集群信息的配置文件/命令行参数就可以引用这一信息了。

下面代码以一组 Host 生成形如 `server1=ip1:port,server2=ip1:port` 的结果。

Host 信息：

    [node]
    10.211.55.78
    10.211.55.79
    10.211.55.80


~~~yaml
- name: storage
  set_fact: host_list="{{ groups['node'] }}"
- name: combine
  set_fact: host_list="{% for item in host_list %} node{{ item.split(".")[2] }}_{{ item.split(".")[3]}}=http://{{item}}:{{ node_peer_port }} {% endfor %}"
- name: display
  set_fact: cluster_hosts={{ host_list.split() | join(",") }}
- name: debug
  debug: var=cluster_hosts
~~~
