У меня есть сервер tomcat с 200 экземплярами. Я создал сценарий для развертывания нового сервера, и он отлично работает, НО
У меня есть несколько игр, которые управляют многочисленными файлами в каждом экземпляре tomcat, и сейчас это происходит так, что ansible-server подключается к целевому серверу для каждой команды. и это очень медленно, но работает
то, что я хотел бы, было для некоторого ускорения процесса, выполнив больше команд pr connection.
вместо того:
..
..
- name: create dir structure for tomcats
file:
dest: "/data/tomcat/tomcat-instance{{ item[1] }}/{{ item[0] }}/"
state: directory
owner: root
group: appuser
mode: 0770
recurse: yes
vars:
dirs:
- work
- webapps
- temp
- conf
loop: "{{ dirs | product(range(1, ( tomcat_count +1 | int ) )) | list }}"
## range requieres +1 because last number is not inside the range
- name: create dir structure - log
file:
dest: "/var/log/tomcat-instance{{ item }}"
state: directory
owner: root
group: appuser
mode: 0770
recurse: yes
with_sequence: count={{ tomcat_count }}
- name: create dir structure-links
file:
src: "/opt/tomcat-{{ tomcat_version[0] }}/{{ item [0] }}"
dest: "/data/tomcat/tomcat-instance{{ item[1] }}/{{ item[0] }}"
state: link
vars:
dirs:
- bin
- lib
- webapps/manager
loop: "{{ dirs | product(range(1, ( tomcat_count +1 | int ) )) | list }}"
## range requieres +1 because last number is not inside the range
- name: create config structure-links
file:
src: "/opt/tomcat-{{ tomcat_version[0] }}/conf/{{ item [0] }}"
dest: "/data/tomcat/tomcat-instance{{ item[1] }}/conf/{{ item[0] }}"
state: link
vars:
dirs:
- catalina.properties
- catalina.policy
- web.xml
- tomcat-users.xml
loop: "{{ dirs | product(range(1, ( tomcat_count +1 | int ) )) | list }}"
- name: create dir structure-links log
file:
src: "/var/log/tomcat-instance{{ item }}"
dest: "/data/tomcat/tomcat-instance{{ item }}/logs"
state: link
with_sequence: count={{ tomcat_count }}
- name: create server.xlm port defnitions
vars:
ShutDownPort: "{{ (item|int) * 100 + 8005 }}"
HttpPort: "{{ (item|int) * 100 + 8080 }}"
AjpPort: "{{ (item|int) * 100 + 8009 }}"
JvmRoute: "{{ ansible_hostname }}{{ item }}"
TomcatHome: "/data/tomcat/tomcat-instance{{ item }}"
template:
src: tomcat_server_xlm_template
#dest: /data/tomcat/tomcat-instance{{ item }}/conf/server.xml
dest: /data/tomcat/tomcat-instance{{ item }}/conf/server-7.xml
with_sequence: count={{ tomcat_count }}
..
..
это всего лишь часть пьесы, и бегать нужно вечно
Могу ли я объединить задачи with_sequence для более быстрого выполнения, или я полностью откажусь от этого решения?