mirror of
				https://git.lapiole.org/dani/ansible-roles.git
				synced 2025-10-30 18:31:28 +01:00 
			
		
		
		
	Update to 2021-12-01 19:13
This commit is contained in:
		
							
								
								
									
										256
									
								
								roles/framadate/tasks/main.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										256
									
								
								roles/framadate/tasks/main.yml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,256 @@ | ||||
| --- | ||||
|  | ||||
| - name: Set install mode | ||||
|   set_fact: framadate_install_mode='none' | ||||
|   tags: framadate | ||||
|  | ||||
| - name: Install needed tools | ||||
|   yum: | ||||
|     name: | ||||
|       - unzip | ||||
|       - acl | ||||
|       - tar | ||||
|   tags: framadate | ||||
|  | ||||
| - name: Create user account for PHP | ||||
|   user: | ||||
|     name: "{{ framadate_php_user }}" | ||||
|     comment: "PHP FPM {{ framadate_php_user }}" | ||||
|     system: True | ||||
|     shell: /sbin/nologin | ||||
|   tags: framadate | ||||
|  | ||||
| - name: Check if framadate is already installed | ||||
|   stat: path={{ framadate_root_dir }}/meta/ansible_version | ||||
|   register: framadate_version_file | ||||
|   tags: framadate | ||||
|  | ||||
| - name: Check framadate version | ||||
|   command:  cat {{ framadate_root_dir }}/meta/ansible_version | ||||
|   register: framadate_current_version | ||||
|   changed_when: False | ||||
|   when: framadate_version_file.stat.exists | ||||
|   tags: framadate | ||||
|  | ||||
| - name: Set installation process to install | ||||
|   set_fact: framadate_install_mode='install' | ||||
|   when: not framadate_version_file.stat.exists | ||||
|   tags: framadate | ||||
|  | ||||
| - name: Set installation process to upgrade | ||||
|   set_fact: framadate_install_mode='upgrade' | ||||
|   when: | ||||
|     - framadate_version_file.stat.exists | ||||
|     - framadate_current_version.stdout != framadate_version | ||||
|     - framadate_manage_upgrade | ||||
|   tags: framadate | ||||
|  | ||||
| - name: Create archive dir | ||||
|   file: path={{ framadate_root_dir }}/archives/{{ framadate_current_version.stdout }} state=directory mode=700 | ||||
|   when: framadate_install_mode == 'upgrade' | ||||
|   tags: framadate | ||||
|  | ||||
| - name: Archive current version | ||||
|   synchronize: | ||||
|     src: "{{ framadate_root_dir }}/web" | ||||
|     dest: "{{ framadate_root_dir }}/archives/{{ framadate_current_version.stdout }}/" | ||||
|     recursive: True | ||||
|     delete: True | ||||
|   delegate_to: "{{ inventory_hostname }}" | ||||
|   when: framadate_install_mode == 'upgrade' | ||||
|   tags: framadate | ||||
|  | ||||
| - name: Dump database | ||||
|   mysql_db: | ||||
|     state: dump | ||||
|     name: "{{ framadate_mysql_db }}" | ||||
|     target: "{{ framadate_root_dir }}/archives/{{ framadate_current_version.stdout }}/{{ framadate_mysql_db }}.sql" | ||||
|     login_host: "{{ framadate_mysql_server }}" | ||||
|     login_user: sqladmin | ||||
|     login_password: "{{ mysql_admin_pass }}" | ||||
|     quick: True | ||||
|     single_transaction: True | ||||
|   when: framadate_install_mode == 'upgrade' | ||||
|   tags: framadate | ||||
|  | ||||
| - name: Create directory structure | ||||
|   file: path={{ item }} state=directory | ||||
|   with_items: | ||||
|     - "{{ framadate_root_dir }}" | ||||
|     - "{{ framadate_root_dir }}/web" | ||||
|     - "{{ framadate_root_dir }}/web/tpl_c" | ||||
|     - "{{ framadate_root_dir }}/tmp" | ||||
|     - "{{ framadate_root_dir }}/sessions" | ||||
|     - "{{ framadate_root_dir }}/logs" | ||||
|     - "{{ framadate_root_dir }}/meta" | ||||
|   tags: framadate | ||||
|  | ||||
| - name: Download Framadate | ||||
|   get_url: | ||||
|     url: "{{ framadate_zip_url }}" | ||||
|     dest: "{{ framadate_root_dir }}/tmp/" | ||||
|     checksum: "sha1:{{ framadate_zip_sha1 }}" | ||||
|   when: framadate_install_mode != 'none' | ||||
|   tags: framadate | ||||
|  | ||||
| - name: Extract framadate archive | ||||
|   unarchive: | ||||
|     src: "{{ framadate_root_dir }}/tmp/framadate-{{ framadate_version }}.zip" | ||||
|     dest: "{{ framadate_root_dir }}/tmp/" | ||||
|     remote_src: yes | ||||
|   when: framadate_install_mode != 'none' | ||||
|   tags: framadate | ||||
|  | ||||
| - name: Move the content of framadate to the correct top directory | ||||
|   synchronize: | ||||
|     src: "{{ framadate_root_dir }}/tmp/framadate-{{ framadate_version }}/" | ||||
|     dest: "{{ framadate_root_dir }}/web/" | ||||
|     recursive: True | ||||
|     delete: True | ||||
|   delegate_to: "{{ inventory_hostname }}" | ||||
|   when: framadate_install_mode != 'none' | ||||
|   tags: framadate | ||||
|  | ||||
| - name: Install libs using composer | ||||
|   composer: command=install working_dir={{ framadate_root_dir }}/web executable=/bin/php{{ framadate_php_version }} | ||||
|   environment: | ||||
|     php: /bin/php{{ framadate_php_version }} | ||||
|   tags: framadate | ||||
|  | ||||
| - name: Download custom logo | ||||
|   get_url: | ||||
|     url: "{{ framadate_logo_url }}" | ||||
|     dest: "{{ framadate_root_dir }}/web/images" | ||||
|   when: framadate_logo_url is search('https?://') | ||||
|   tags: framadate | ||||
|  | ||||
| - name: Generate a random pass for the database | ||||
|   shell: openssl rand -base64 45 > {{ framadate_root_dir }}/meta/ansible_dbpass | ||||
|   args: | ||||
|     creates: "{{ framadate_root_dir }}/meta/ansible_dbpass" | ||||
|   when: framadate_mysql_pass is not defined | ||||
|   tags: framadate | ||||
|  | ||||
| - name: Read database password | ||||
|   command: cat {{ framadate_root_dir }}/meta/ansible_dbpass | ||||
|   register: framadate_rand_pass | ||||
|   when: framadate_mysql_pass is not defined | ||||
|   changed_when: False | ||||
|   tags: framadate | ||||
|  | ||||
| - name: Set database pass | ||||
|   set_fact: framadate_mysql_pass={{ framadate_rand_pass.stdout }} | ||||
|   when: framadate_mysql_pass is not defined | ||||
|   tags: framadate | ||||
|  | ||||
| - name: Create MySQL database | ||||
|   mysql_db: | ||||
|     name: "{{ framadate_mysql_db }}" | ||||
|     login_host: "{{ framadate_mysql_server }}" | ||||
|     login_user: sqladmin | ||||
|     login_password: "{{ mysql_admin_pass }}" | ||||
|     state: present | ||||
|   register: framadate_mysql_created | ||||
|   tags: framadate | ||||
|  | ||||
| - name: Create MySQL User | ||||
|   mysql_user: | ||||
|     name: "{{ framadate_mysql_user }}" | ||||
|     password: "{{ framadate_mysql_pass }}" | ||||
|     priv: "{{ framadate_mysql_db }}.*:ALL" | ||||
|     host: "{{ (framadate_mysql_server == 'localhost') | ternary('localhost', item) }}" | ||||
|     login_host: "{{ framadate_mysql_server }}" | ||||
|     login_user: sqladmin | ||||
|     login_password: "{{ mysql_admin_pass }}" | ||||
|     state: present | ||||
|   with_items: "{{ ansible_all_ipv4_addresses }}" | ||||
|   tags: framadate | ||||
|  | ||||
| - name: Copy SQL structure | ||||
|   copy: src=framadate.sql dest={{ framadate_root_dir }}/tmp/framadate.sql | ||||
|   when: framadate_install_mode != 'none' | ||||
|   tags: framadate | ||||
|  | ||||
| - name: Inject MySQL schema | ||||
|   mysql_db: | ||||
|     name: "{{ framadate_mysql_db }}" | ||||
|     state: import | ||||
|     target: "{{ framadate_root_dir }}/tmp/framadate.sql" | ||||
|     login_host: "{{ framadate_mysql_server }}" | ||||
|     login_user: sqladmin | ||||
|     login_password: "{{ mysql_admin_pass }}" | ||||
|   when: framadate_install_mode == 'install' | ||||
|   tags: framadate | ||||
|  | ||||
| - name: Remove temp files | ||||
|   file: path={{ item }} state=absent | ||||
|   with_items: | ||||
|     - "{{ framadate_root_dir }}/tmp/framadate-{{ framadate_version }}" | ||||
|     - "{{ framadate_root_dir }}/tmp/framadate-{{ framadate_version }}.zip" | ||||
|     - "{{ framadate_root_dir }}/tmp/framadate.sql" | ||||
|   tags: framadate | ||||
|  | ||||
| - name: Deploy permission script | ||||
|   template: src=perms.sh.j2 dest={{ framadate_root_dir}}/perms.sh mode=755 | ||||
|   tags: framadate | ||||
|  | ||||
| - name: Deploy httpd configuration | ||||
|   template: src=httpd.conf.j2 dest=/etc/httpd/ansible_conf.d/10-framadate_{{ framadate_id }}.conf | ||||
|   notify: reload httpd | ||||
|   tags: framadate | ||||
|  | ||||
| - name: Deploy PHP configuration | ||||
|   template: src=php.conf.j2 dest=/etc/opt/remi/php{{ framadate_php_version }}/php-fpm.d/framadate_{{ framadate_id }}.conf | ||||
|   notify: restart php-fpm | ||||
|   tags: framadate | ||||
|  | ||||
| - name: Remove PHP configuration from other versions | ||||
|   file: path=/etc/opt/remi/php{{ item }}/php-fpm.d/framadate_{{ framadate_id }}.conf state=absent | ||||
|   with_items: "{{ httpd_php_versions | difference([ framadate_php_version ]) }}" | ||||
|   notify: restart php-fpm | ||||
|   tags: framadate | ||||
|  | ||||
| - name: Remove PHP configuration (using a custom pool) | ||||
|   file: path=/etc/opt/remi/php{{ framadate_php_version }}/php-fpm.d/framadate_{{ framadate_id }}.conf state=absent | ||||
|   when: framadate_php_fpm_pool is defined | ||||
|   notify: restart php-fpm | ||||
|   tags: framadate | ||||
|  | ||||
| - name: Deploy framadate configuration | ||||
|   template: src=config.php.j2 dest={{ framadate_root_dir }}/web/app/inc/config.php owner=root group={{ framadate_php_user }} mode=640 | ||||
|   tags: framadate | ||||
|  | ||||
| - name: Set correct SELinux context | ||||
|   sefcontext: | ||||
|     target: "{{ framadate_root_dir }}(/.*)?" | ||||
|     setype: httpd_sys_content_t | ||||
|     state: present | ||||
|   when: ansible_selinux.status == 'enabled' | ||||
|   tags: framadate | ||||
|  | ||||
| - name: Restrict permissions | ||||
|   command: "{{ framadate_root_dir }}/perms.sh" | ||||
|   changed_when: False | ||||
|   tags: framadate | ||||
|  | ||||
| - name: Compress previous version | ||||
|   command: tar cJf {{ framadate_root_dir }}/archives/{{ framadate_current_version.stdout }}.txz ./ | ||||
|   environment: | ||||
|     XZ_OPT: -T0 | ||||
|   args: | ||||
|     chdir: "{{ framadate_root_dir }}/archives/{{ framadate_current_version.stdout }}" | ||||
|     warn: False | ||||
|   when: framadate_install_mode == 'upgrade' | ||||
|   tags: framadate | ||||
|  | ||||
| - name: Remove archive directory | ||||
|   file: path={{ framadate_root_dir }}/archives/{{ framadate_current_version.stdout }} state=absent | ||||
|   when: framadate_install_mode == 'upgrade' | ||||
|   tags: framadate | ||||
|  | ||||
| - name: Write version number | ||||
|   copy: content={{ framadate_version }} dest={{ framadate_root_dir }}/meta/ansible_version | ||||
|   when: framadate_install_mode != 'none' | ||||
|   tags: framadate | ||||
|  | ||||
| ... | ||||
		Reference in New Issue
	
	Block a user
	 Daniel Berteaud
					Daniel Berteaud