Playbook #11 |
/home/zuul/src/opendev.org/opendev/system-config/playbooks/test-gitea.yaml |
File: /home/zuul/src/opendev.org/opendev/system-config/playbooks/rename_repos.yaml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 | - hosts: review gather_facts: False remote_user: root tasks: - include_vars: "{{ repolist }}" - name: Stop Gerrit shell: cmd: docker-compose down chdir: /etc/gerrit-compose/ - name: Make organization dir file: state: directory path: "{{ (item[0] + item[1].new) | dirname }}" group: gerrit2 owner: gerrit2 mode: 0755 with_nested: - [ '~gerrit2/review_site/git/' ] - "{{ repos }}" - name: Rename git repos on gerrit shell: mv {{ item[0] }}{{ item[1].old }}.git {{ item[0] }}{{ item[1].new }}.git with_nested: - [ '~gerrit2/review_site/git/' ] - "{{ repos }}" - hosts: gitea gather_facts: False vars: gitea_url: https://localhost:3000 tasks: - include_vars: "{{ repolist }}" - name: Move gitea repo include_tasks: gitea-rename-tasks.yaml loop: "{{ repos }}" loop_control: loop_var: repo - hosts: storyboard-dev gather_facts: False remote_user: root tasks: - include_vars: "{{ repolist }}" - name: Rename projects in storyboard shell: echo 'update projects set name="{{ item.new }}" where name="{{ item.old }}";' | mysql --defaults-file=/etc/mysql/debian.cnf storyboard with_items: "{{ repos }}" # We don't want to be blocked by errors on the dev server. ignore_errors: yes - hosts: storyboard gather_facts: False remote_user: root tasks: - include_vars: "{{ repolist }}" - name: Rename projects in storyboard shell: echo 'update projects set name="{{ item.new }}" where name="{{ item.old }}";' | mysql --defaults-file=/etc/mysql/debian.cnf storyboard with_items: "{{ repos }}" - hosts: zuul02.opendev.org gather_facts: False remote_user: root tasks: - include_vars: "{{ repolist }}" - name: Backup the zuul keys before we modify them command: "docker exec zuul-scheduler-scheduler-1 zuul-admin export-keys /var/lib/zuul/zuul-keys-backup.json" - name: Copy zuul keys from old to new project command: "docker exec zuul-scheduler-scheduler-1 zuul-admin copy-keys gerrit {{ item.old }} gerrit {{ item.new }}" loop: "{{ repos }}" - hosts: review gather_facts: False remote_user: root become: yes become_user: gerrit2 tasks: - name: Make backup of gerrit index shell: cp -ax /home/gerrit2/review_site/index /home/gerrit2/index.backup.$(date +%s) # As an alternative we can simply delete the waiting queue. Previously # these were copied for debugging purposes but the problems are # reasonably well understood so we probably don't need to keep collecting # more data. # We use the tmp/ path because it is not backed up and we don't need to # preserve this information long term. - name: Create replication queue target location file: path: /home/gerrit2/tmp/replication_waiting_queues state: directory mode: '0755' owner: gerrit2 group: gerrit2 - name: Move the replication plugin waiting queue aside due to bugs shell: mv /home/gerrit2/review_site/data/replication/ref-updates/waiting /home/gerrit2/tmp/replication_waiting_queues/waiting_queue_$(date +%s) - hosts: review gather_facts: False remote_user: root tasks: - name: Start gerrit include_role: name: gerrit tasks_from: start vars: gerrit_run_init: false gerrit_run_reindex: false gerrit_run_compose_up: true - hosts: review gather_facts: False remote_user: root become: yes become_user: gerrit2 tasks: - include_vars: "{{ repolist }}" - name: Wait for gerrit ssh to be listening wait_for: host: localhost port: 29418 # Far longer than necessary timeout: 1800 - name: Sleep a bit longer just to be sure it is up wait_for: timeout: 30 - name: Set base ssh command fact set_fact: gerrit_ssh_command: ssh -p 29418 -i /home/gerrit2/review_site/etc/ssh_project_rsa_key openstack-project-creator@localhost gerrit - name: Rename groups in gerrit shell: "{{ gerrit_ssh_command }} rename-group {{ item.old }} {{ item.new }}" with_items: "{{ gerrit_groups|default([]) }}" - name: Start online reindex of accounts shell: "{{ gerrit_ssh_command }} index start accounts --force" - name: Start online reindex of groups shell: "{{ gerrit_ssh_command }} index start groups --force" - name: Start online reindex of projects shell: "{{ gerrit_ssh_command }} index start projects --force" - name: Start online reindex of changes shell: "{{ gerrit_ssh_command }} index start changes --force" - hosts: zuul02.opendev.org gather_facts: False remote_user: root tasks: - include_vars: "{{ repolist }}" - name: Remove old zuul project keys command: "docker exec zuul-scheduler-scheduler-1 zuul-admin delete-keys gerrit {{ item.old }}" loop: "{{ repos }}" |