Назад | Перейти на главную страницу

ansible: быстрое управление 200 файлами

У меня есть сервер 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 для более быстрого выполнения, или я полностью откажусь от этого решения?