mirror of
				https://git.lapiole.org/dani/ansible-roles.git
				synced 2025-10-31 10:51:27 +01:00 
			
		
		
		
	Update to 2021-12-01 19:13
This commit is contained in:
		
							
								
								
									
										10
									
								
								roles/akeneo_pim/tasks/archive_post.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								roles/akeneo_pim/tasks/archive_post.yml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,10 @@ | ||||
| --- | ||||
|  | ||||
| - name: Compress previous version | ||||
|   command: tar cf {{ pim_root_dir }}/archives/{{ pim_current_version }}.tar.zst ./ --use-compress-program=zstd | ||||
|   args: | ||||
|     chdir: "{{ pim_root_dir }}/archives/{{ pim_current_version }}" | ||||
|     warn: False | ||||
|   environment: | ||||
|     ZSTD_CLEVEL: 10 | ||||
|   tags: pim | ||||
							
								
								
									
										40
									
								
								roles/akeneo_pim/tasks/archive_pre.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										40
									
								
								roles/akeneo_pim/tasks/archive_pre.yml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,40 @@ | ||||
| --- | ||||
|  | ||||
| - name: Create the archive dir | ||||
|   file: path={{ pim_root_dir }}/archives/{{ pim_current_version }} state=directory | ||||
|   tags: pim | ||||
|  | ||||
| - name: Stop jobs and event API services | ||||
|   service: name={{ item }} state=stopped | ||||
|   loop: | ||||
|     - akeneo-pim_{{ pim_id }}-jobs | ||||
|     - akeneo-pim_{{ pim_id }}-events-api | ||||
|   tags: pim | ||||
|  | ||||
| - name: Disable cron jobs | ||||
|   file: path=/etc/cron.d/akeneopim_{{ pim_id }} state=absent | ||||
|   tags: pim | ||||
|  | ||||
| - name: Archive current version | ||||
|   synchronize: | ||||
|     src: "{{ pim_root_dir }}/app" | ||||
|     dest: "{{ pim_root_dir }}/archives/{{ pim_current_version }}/" | ||||
|     compress: False | ||||
|     delete: True | ||||
|   delegate_to: "{{ inventory_hostname }}" | ||||
|   tags: pim | ||||
|  | ||||
| - name: Dump the database | ||||
|   mysql_db: | ||||
|     state: dump | ||||
|     name: "{{ pim_db_name }}" | ||||
|     target: "{{ pim_root_dir }}/archives/{{ pim_current_version }}/{{ pim_db_name }}.sql.xz" | ||||
|     login_host: "{{ pim_db_server }}" | ||||
|     login_port: "{{ pim_db_port }}" | ||||
|     login_user: "{{ pim_db_user }}" | ||||
|     login_password: "{{ pim_db_pass }}" | ||||
|     quick: True | ||||
|     single_transaction: True | ||||
|   environment: | ||||
|     XZ_OPT: -T0 | ||||
|   tags: pim | ||||
							
								
								
									
										8
									
								
								roles/akeneo_pim/tasks/cleanup.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								roles/akeneo_pim/tasks/cleanup.yml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,8 @@ | ||||
| --- | ||||
|  | ||||
| - name: Remove tmp and obsolete files | ||||
|   file: path={{ item }} state=absent | ||||
|   loop: | ||||
|     - "{{ pim_root_dir }}/archives/{{ pim_current_version }}" | ||||
|   tags: pim | ||||
|  | ||||
							
								
								
									
										117
									
								
								roles/akeneo_pim/tasks/conf.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										117
									
								
								roles/akeneo_pim/tasks/conf.yml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,117 @@ | ||||
| --- | ||||
|  | ||||
| - name: Deploy configuration | ||||
|   template: src=env.j2 dest={{ pim_root_dir }}/app/.env.local group={{ pim_user }} mode=640 | ||||
|   tags: pim | ||||
|  | ||||
| - import_tasks: ../includes/webapps_webconf.yml | ||||
|   vars: | ||||
|     - app_id: pim_{{ pim_id }} | ||||
|     - php_version: "{{ pim_php_version }}" | ||||
|     - php_fpm_pool: "{{ pim_php_fpm_pool | default('') }}" | ||||
|   tags: pim | ||||
|  | ||||
| - name: Build and update frontend components | ||||
|   command: scl enable php{{ pim_php_version }} -- make upgrade-front | ||||
|   args: | ||||
|     chdir: "{{ pim_root_dir }}/app" | ||||
|   environment: | ||||
|     NO_DOCKER: true | ||||
|     APP_ENV: prod | ||||
|   become_user: "{{ pim_user }}" | ||||
|   when: pim_install_mode != 'none' | ||||
|   tags: pim | ||||
|  | ||||
| - name: Initialize the database | ||||
|   command: scl enable php{{ pim_php_version }} -- make database O="--catalog vendor/akeneo/pim-community-dev/src/Akeneo/Platform/Bundle/InstallerBundle/Resources/fixtures/minimal" | ||||
|   args: | ||||
|     chdir: "{{ pim_root_dir }}/app" | ||||
|   environment: | ||||
|     NO_DOCKER: true | ||||
|     APP_ENV: prod | ||||
|   become_user: "{{ pim_user }}" | ||||
|   when: pim_install_mode == 'install' | ||||
|   tags: pim | ||||
|  | ||||
| - name: Upgrade database | ||||
|   command: /bin/php{{ pim_php_version }} {{ pim_root_dir }}/app/bin/console doctrine:migrations:migrate --no-interaction | ||||
|   args: | ||||
|     chdir: "{{ pim_root_dir }}/app" | ||||
|   become_user: "{{ pim_user }}" | ||||
|   when: pim_install_mode == 'upgrade' | ||||
|   tags: pim | ||||
|  | ||||
| - name: Deploy permission script | ||||
|   template: src=perms.sh.j2 dest={{ pim_root_dir }}/perms.sh mode=755 | ||||
|   register: pim_perm_script | ||||
|   tags: pim | ||||
|  | ||||
| - name: Apply permissions | ||||
|   command: "{{ pim_root_dir }}/perms.sh" | ||||
|   when: pim_perm_script.changed or pim_install_mode != 'none' | ||||
|   tags: pim | ||||
|  | ||||
| - name: Setup cron jobs | ||||
|   cron: | ||||
|     cron_file: akeneopim_{{ pim_id }} | ||||
|     user: "{{ pim_user }}" | ||||
|     name: "{{ item.name }}" | ||||
|     job: /bin/php{{ pim_php_version }} {{ pim_root_dir }}/app/bin/console {{ item.job }} | ||||
|     minute: "{{ item.minute | default('*') }}" | ||||
|     hour: "{{ item.hour | default('*') }}" | ||||
|     weekday: "{{ item.weekday | default('*') }}" | ||||
|     day: "{{ item.day | default('*') }}" | ||||
|     month: "{{ item.month | default('*') }}" | ||||
|   loop: | ||||
|     - name: refresh | ||||
|       job: pim:versioning:refresh | ||||
|       minute: 30 | ||||
|       hour: 1 | ||||
|     - name: purge | ||||
|       job: pim:versioning:purge --more-than-days 90 --no-interaction --force | ||||
|       minute: 30 | ||||
|       hour: 2 | ||||
|     - name: update-data | ||||
|       job: akeneo:connectivity-audit:update-data | ||||
|       minute: 1 | ||||
|     - name: purge-errors | ||||
|       job: akeneo:connectivity-connection:purge-error | ||||
|       minute: 10 | ||||
|     - name: purge-job-execution | ||||
|       job: akeneo:batch:purge-job-execution | ||||
|       minute: 20 | ||||
|       hour: 0 | ||||
|       day: 1 | ||||
|     - name: purge-error-count | ||||
|       job: akeneo:connectivity-audit:purge-error-count | ||||
|       minute: 40 | ||||
|       hour: 0 | ||||
|     - name: aggregate | ||||
|       job: pim:volume:aggregate | ||||
|       minute: 30 | ||||
|       hour: 4 | ||||
|     - name: schedule-periodic-tasks | ||||
|       job: pim:data-quality-insights:schedule-periodic-tasks | ||||
|       minute: 15 | ||||
|       hour: 0 | ||||
|     - name: prepare-evaluations | ||||
|       job: pim:data-quality-insights:prepare-evaluations | ||||
|       minute: '*/10' | ||||
|     - name: evaluations | ||||
|       job: pim:data-quality-insights:evaluations | ||||
|       minute: '*/30' | ||||
|     - name: purge-messages | ||||
|       job: akeneo:messenger:doctrine:purge-messages messenger_messages default | ||||
|       minute: 0 | ||||
|       hour: '*/2' | ||||
|   tags: pim | ||||
|  | ||||
| - name: Create the admin user | ||||
|   command: /bin/php{{ pim_php_version }} {{ pim_root_dir }}/app/bin/console pim:user:create --admin -n -- admin {{ pim_admin_pass | quote }} admin@example.org Admin Admin fr_FR | ||||
|   when: pim_install_mode == 'install' | ||||
|   become_user: "{{ pim_user }}" | ||||
|   tags: pim | ||||
|  | ||||
| - name: Deploy logrotate conf | ||||
|   template: src=logrotate.conf.j2 dest=/etc/logrotate.d/akeneopim_{{ pim_id }} | ||||
|   tags: pim | ||||
							
								
								
									
										30
									
								
								roles/akeneo_pim/tasks/directories.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								roles/akeneo_pim/tasks/directories.yml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,30 @@ | ||||
| --- | ||||
|  | ||||
| - name: Create nedded directories | ||||
|   file: path={{ item.dir }} state=directory owner={{ item.owner | default(omit) }} group={{ item.group | default(omit) }} mode={{ item.mode | default(omit) }} | ||||
|   loop: | ||||
|     - dir: "{{ pim_root_dir }}/meta" | ||||
|       mode: 700 | ||||
|     - dir: "{{ pim_root_dir }}/archives" | ||||
|       mode: 700 | ||||
|     - dir: "{{ pim_root_dir }}/backup" | ||||
|       mode: 700 | ||||
|     - dir: "{{ pim_root_dir }}/data" | ||||
|       owner: "{{ pim_user }}" | ||||
|       mode: 700 | ||||
|     - dir: "{{ pim_root_dir }}/app" | ||||
|       owner: "{{ pim_user }}" | ||||
|       group: "{{ pim_user }}" | ||||
|     - dir: "{{ pim_root_dir }}/tmp" | ||||
|       owner: "{{ pim_user }}" | ||||
|       group: "{{ pim_user }}" | ||||
|       mode: 700 | ||||
|     - dir: "{{ pim_root_dir }}/sessions" | ||||
|       owner: "{{ pim_user }}" | ||||
|       group: "{{ pim_user }}" | ||||
|       mode: 700 | ||||
|   tags: pim | ||||
|  | ||||
| - name: Link the var directory to the data dir | ||||
|   file: src={{ pim_root_dir }}/data dest={{ pim_root_dir }}/app/var state=link | ||||
|   tags: pim | ||||
							
								
								
									
										38
									
								
								roles/akeneo_pim/tasks/facts.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										38
									
								
								roles/akeneo_pim/tasks/facts.yml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,38 @@ | ||||
| --- | ||||
|  | ||||
| # Detect installed version (if any) | ||||
| - block: | ||||
|     - import_tasks: ../includes/webapps_set_install_mode.yml | ||||
|       vars: | ||||
|         - root_dir: "{{ pim_root_dir }}" | ||||
|         - version: "{{ pim_version }}" | ||||
|     - set_fact: pim_install_mode={{ (install_mode == 'upgrade' and not pim_manage_upgrade) | ternary('none',install_mode) }} | ||||
|     - set_fact: pim_current_version={{ current_version | default('') }} | ||||
|   tags: pim | ||||
|  | ||||
| # Create a random pass for the DB if needed | ||||
| - block: | ||||
|     - import_tasks: ../includes/get_rand_pass.yml | ||||
|       vars: | ||||
|         - pass_file: "{{ pim_root_dir }}/meta/ansible_dbpass" | ||||
|     - set_fact: pim_db_pass={{ rand_pass }} | ||||
|   when: pim_db_pass is not defined | ||||
|   tags: pim | ||||
|  | ||||
| # Create a random secret if needed | ||||
| - block: | ||||
|     - import_tasks: ../includes/get_rand_pass.yml | ||||
|       vars: | ||||
|         - pass_file: "{{ pim_root_dir }}/meta/ansible_secret" | ||||
|     - set_fact: pim_secret={{ rand_pass }} | ||||
|   when: pim_secret is not defined | ||||
|   tags: pim | ||||
|  | ||||
| # Create a random admin pass if needed | ||||
| - block: | ||||
|     - import_tasks: ../includes/get_rand_pass.yml | ||||
|       vars: | ||||
|         - pass_file: "{{ pim_root_dir }}/meta/ansible_admin_pass" | ||||
|     - set_fact: pim_admin_pass={{ rand_pass }} | ||||
|   when: pim_admin_pass is not defined | ||||
|   tags: pim | ||||
							
								
								
									
										95
									
								
								roles/akeneo_pim/tasks/install.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										95
									
								
								roles/akeneo_pim/tasks/install.yml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,95 @@ | ||||
| --- | ||||
|  | ||||
| - name: Install needed tools | ||||
|   package: | ||||
|     name: | ||||
|       - make | ||||
|       - ghostscript | ||||
|       - aspell | ||||
|   tags: pim | ||||
|  | ||||
| - when: pim_install_mode == 'upgrade' | ||||
|   block: | ||||
|     - name: Wipe install on upgrades | ||||
|       file: path={{ pim_root_dir }}/app state=absent | ||||
|  | ||||
|     - name: Create app subdir | ||||
|       file: path={{ pim_root_dir }}/app state=directory owner={{ pim_user }} group={{ pim_user }} | ||||
|  | ||||
|     - name: Link the var directory  | ||||
|       file: src={{ pim_root_dir }}/data dest={{ pim_root_dir }}/app/var state=link | ||||
|  | ||||
|   tags: pim | ||||
|  | ||||
| - when: pim_install_mode != 'none' | ||||
|   block: | ||||
|     - name: Deploy composer.json | ||||
|       template: src=composer.json.j2 dest={{ pim_root_dir }}/app/composer.json owner={{ pim_user }} | ||||
|       become_user: root | ||||
|  | ||||
|     - name: Install Akeneo with Composer | ||||
|       composer: | ||||
|         working_dir: "{{ pim_root_dir }}/app" | ||||
|         executable: /bin/php{{ pim_php_version }} | ||||
|         command: install | ||||
|       become_user: "{{ pim_user }}" | ||||
|  | ||||
|     - name: Install yarn globaly | ||||
|       npm: | ||||
|         name: yarn | ||||
|         path: "{{ pim_root_dir }}/app" | ||||
|         global: True | ||||
|         state: latest | ||||
|  | ||||
|     - name: Install typescript globaly | ||||
|       npm: | ||||
|         name: typescript | ||||
|         path: "{{ pim_root_dir }}/app" | ||||
|         global: True | ||||
|         state: latest | ||||
|  | ||||
|   tags: pim | ||||
|  | ||||
|   # the PIM makefile has /usr/local/bin/composer hardcoded | ||||
| - name: Link composer in /usr/local/bin | ||||
|   file: src=/bin/composer dest=/usr/local/bin/composer state=link | ||||
|   tags: pim | ||||
|  | ||||
| - import_tasks: ../includes/webapps_create_mysql_db.yml | ||||
|   vars: | ||||
|     - db_name: "{{ pim_db_name }}" | ||||
|     - db_user: "{{ pim_db_user }}" | ||||
|     - db_server: "{{ pim_db_server }}" | ||||
|     - db_pass: "{{ pim_db_pass }}" | ||||
|   tags: pim | ||||
|  | ||||
| - name: Set correct SELinux context | ||||
|   sefcontext: | ||||
|     target: "{{ pim_root_dir }}(/.*)?" | ||||
|     setype: httpd_sys_content_t | ||||
|     state: present | ||||
|   when: ansible_selinux.status == 'enabled' | ||||
|   tags: pim | ||||
|  | ||||
| - name: Install pre/post backup hooks | ||||
|   template: src={{ item }}-backup.j2 dest=/etc/backup/{{ item }}.d/pim_{{ pim_id }} mode=700 | ||||
|   loop: | ||||
|     - pre | ||||
|     - post | ||||
|   tags: pim | ||||
|  | ||||
| - name: Install job consumer and events api service units | ||||
|   template: src={{ item.src }} dest=/etc/systemd/system/{{ item.dest }} | ||||
|   loop: | ||||
|     - src: akeneo-pim-jobs.service.j2 | ||||
|       dest: akeneo-pim_{{ pim_id }}-jobs.service | ||||
|     - src: akeneo-pim-events-api.service.j2 | ||||
|       dest: akeneo-pim_{{ pim_id }}-events-api.service | ||||
|   register: pim_job_unit | ||||
|   notify: restart akeneo-pim | ||||
|   tags: pim | ||||
|  | ||||
| - name: Reload systemd | ||||
|   systemd: daemon_reload=True | ||||
|   when: pim_job_unit.results | selectattr('changed','equalto',True) | list | length > 0 | ||||
|   tags: pim | ||||
							
								
								
									
										13
									
								
								roles/akeneo_pim/tasks/main.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								roles/akeneo_pim/tasks/main.yml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,13 @@ | ||||
| --- | ||||
|  | ||||
| - include: user.yml | ||||
| - include: directories.yml | ||||
| - include: facts.yml | ||||
| - include: archive_pre.yml | ||||
|   when: pim_install_mode == 'upgrade' | ||||
| - include: install.yml | ||||
| - include: conf.yml | ||||
| - include: write_version.yml | ||||
| - include: archive_post.yml | ||||
|   when: pim_install_mode == 'upgrade' | ||||
| - include: cleanup.yml | ||||
							
								
								
									
										8
									
								
								roles/akeneo_pim/tasks/services.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								roles/akeneo_pim/tasks/services.yml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,8 @@ | ||||
| --- | ||||
|  | ||||
| - name: Start services | ||||
|   service: name={{ item }} state=started enabled=True | ||||
|   loop: | ||||
|     - akeneo-pim_{{ pim_id }}-jobs | ||||
|     - akeneo-pim_{{ pim_id }}-events-api | ||||
|   tags: pim | ||||
							
								
								
									
										9
									
								
								roles/akeneo_pim/tasks/user.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								roles/akeneo_pim/tasks/user.yml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,9 @@ | ||||
| --- | ||||
|  | ||||
| - name: Create user | ||||
|   user: | ||||
|     name: "{{ pim_user }}" | ||||
|     system: True | ||||
|     home: "{{ pim_root_dir }}" | ||||
|     shell: /sbin/nologin | ||||
|   tags: pim | ||||
							
								
								
									
										5
									
								
								roles/akeneo_pim/tasks/write_version.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								roles/akeneo_pim/tasks/write_version.yml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,5 @@ | ||||
| --- | ||||
|  | ||||
| - name: Write current installed version | ||||
|   copy: content={{ pim_version }} dest={{ pim_root_dir }}/meta/ansible_version | ||||
|   tags: pim | ||||
		Reference in New Issue
	
	Block a user
	 Daniel Berteaud
					Daniel Berteaud