mirror of
				https://github.com/iiab/iiab.git
				synced 2025-03-09 15:40:17 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			156 lines
		
	
	
	
		
			5.9 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			156 lines
		
	
	
	
		
			5.9 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
| - name: 'Install 2 packages: {{ apache_service }}, libapache2-mod-php{{ php_version }}'
 | |
|   package:
 | |
|     #name: [u'apache2', u'php{{ php_version }}', u'php{{ php_version }}-curl']    # FAILS ('u' for Unicode strings)
 | |
|     #name: ['apache2', 'php{{ php_version }}', 'php{{ php_version }}-curl']       # WORKS?
 | |
|     name:
 | |
|       - "{{ apache_service }}"    # apache2 on Debuntu
 | |
|       - libapache2-mod-php{{ php_version }}    # 2020-06-15: Required (e.g. for Elgg, Moodle & possibly others) now that mysql/tasks/install.yml installs "php{{ php_version }}-common" rather than the full "php{{ php_version }}" -- 2021-06-28 FYI: this also drags in libsodium23 (likewise installed via nginx/tasks/install.yml AND moodle/tasks/install.yml)
 | |
|       #- "php{{ php_version }}"
 | |
|       #- "php{{ php_version }}-curl"
 | |
|     state: present
 | |
| #  when: is_debian
 | |
| 
 | |
| # - name: 'Install 2 packages: apache2, php (ubuntu)'
 | |
| #   package:
 | |
| #     #name: [u'apache2', u'php']    # FAILS ('u' for Unicode strings)
 | |
| #     #name: ['apache2', 'php']      # WORKS
 | |
| #     name:
 | |
| #       - "{{ apache_service }}"    # apache2 on Debuntu
 | |
| #       - php
 | |
| #     state: present
 | |
| #   when: is_ubuntu
 | |
| 
 | |
| # 2019-05-30: It's interesting that http://box.lan/admin and everything seems
 | |
| # to work even without php{{ php_version }}-sqlite3 as confirmed on Ubuntu
 | |
| # 16.04 (SEE PR #1697).  And likely all others?  @tim-moody writes "I think
 | |
| # we decided that because sqlite3 and php are part of the base install the
 | |
| # connector should be too."
 | |
| #
 | |
| # We might *try* deprecating this here as we transition beyond {raspbian-9,
 | |
| # debian-9, ubuntu-18} in coming months to verify that roles/osm-vector-maps
 | |
| # is the only role that needs it?
 | |
| #
 | |
| # Legacy Comment: SQLite3 no longer included in another package
 | |
| #- name: Install php{{ php_version }}-sqlite3 (raspbian-9+ or debian-9+ or ubuntu-18+)
 | |
| #  package:
 | |
| #    name: "php{{ php_version }}-sqlite3"
 | |
| #  #when: is_raspbian_9 or is_debian_9 or is_ubuntu_18
 | |
| #  when: is_debuntu and (not is_debian_8) and (not is_ubuntu_16)
 | |
| #  #when: (is_debian and ansible_distribution_major_version == "9") or is_ubuntu_18
 | |
| 
 | |
| #- name: 'Install 4 packages: httpd, mod_authnz_external, php, php-curl (redhat)'
 | |
| #  package:
 | |
| #    #name: [u'httpd', u'php', u'php-curl', u'mod_authnz_external']    # FAILS ('u' for Unicode strings)
 | |
| #    #name: ['httpd', 'php', 'php-curl', 'mod_authnz_external']        # WORKS
 | |
| #    name:
 | |
| #      - httpd
 | |
| #      - mod_authnz_external
 | |
| #      - php
 | |
| #      - php-curl
 | |
| #    state: present
 | |
| #  when: is_redhat
 | |
| 
 | |
| # Remove symlinks for mpm_event, replace with mpm_prefork
 | |
| - name: Remove both mpm_event symlinks from /etc/apache2/mods-enabled
 | |
|   file:
 | |
|     path: "/etc/apache2/mods-enabled/{{ item }}"
 | |
|     state: absent
 | |
|   with_items:
 | |
|     - mpm_event.conf
 | |
|     - mpm_event.load
 | |
|   #when: is_debuntu
 | |
| 
 | |
| - name: Create both mpm_prefork symlinks from /etc/apache2/mods-enabled to /etc/apache2/mods-available
 | |
|   file:
 | |
|     src: "/etc/apache2/mods-available/{{ item }}"
 | |
|     path: "/etc/apache2/mods-enabled/{{ item }}"
 | |
|     state: link
 | |
|   with_items:
 | |
|     - mpm_prefork.conf
 | |
|     - mpm_prefork.load
 | |
|   #when: is_debuntu
 | |
| 
 | |
| - name: 'Enable 5 Apache modules, as with "a2enmod" command: headers, proxy, proxy_html, proxy_http, rewrite (for http://box/kiwix, http://box/kolibri, http://box/nodered, etc)'
 | |
|   apache2_module:
 | |
|     name: "{{ item }}"
 | |
|   with_items:
 | |
|     - headers
 | |
|     - proxy
 | |
|     - proxy_html
 | |
|     - proxy_http
 | |
|     - rewrite
 | |
|   #when: is_debuntu
 | |
| 
 | |
| - name: Remove 000-default.conf from /etc/apache2 and /etc/apache2/sites-enabled
 | |
|   file:
 | |
|     path: "{{ item }}"
 | |
|     state: absent
 | |
|   with_items:
 | |
|     - /etc/apache2/000-default.conf    # Not nec on Raspbian.  Is this really still needed elsewhere?
 | |
|     - /etc/apache2/sites-enabled/000-default.conf
 | |
|   #when: is_debuntu
 | |
| 
 | |
| - name: Create Apache's pid dir /var/run/{{ apache_user }}
 | |
|   file:
 | |
|     state: directory
 | |
|     path: "/var/run/{{ apache_user }}"    # www-data on Debuntu
 | |
|     #owner: root
 | |
|     #group: root
 | |
|     #mode: '0755'
 | |
| 
 | |
| - name: 'Create group: admin'
 | |
|   group:
 | |
|     name: admin
 | |
| 
 | |
| - name: Add user {{ apache_user }} (from variable apache_user) to groups admin,shadow
 | |
|   user:
 | |
|     name: "{{ apache_user }}"    # www-data on Debuntu
 | |
|     groups: admin,shadow    # 2020-06-04: shadow nec for Admin Console login (this line had been clobbering user www-data's membership in group shadow, as set earlier by nginx/tasks/install.yml, SEE #2431)
 | |
|     createhome: no
 | |
| 
 | |
| - name: Create Apache dir /var/log/{{ apache_service }} ({{ apache_user }}:{{ apache_user }})
 | |
|   file:
 | |
|     state: directory
 | |
|     path: "/var/log/{{ apache_service }}"    # apache2 on Debuntu
 | |
|     owner: "{{ apache_user }}"    # www-data on Debuntu
 | |
|     group: "{{ apache_user }}"
 | |
|     #mode: '0755'
 | |
| 
 | |
| 
 | |
| - name: Install Apache's 010-iiab.conf & proxy_ajp.conf into /etc/apache2/sites-available, from templates
 | |
|   template:
 | |
|     src: "{{ item.src }}"
 | |
|     dest: "{{ item.dest }}"
 | |
|   with_items:
 | |
|     - { src: 'roles/httpd/templates/010-iiab.conf.j2', dest: '/etc/{{ apache_conf_dir }}/010-iiab.conf' }
 | |
|     - { src: 'roles/httpd/templates/proxy_ajp.conf.j2', dest: '/etc/{{ apache_conf_dir }}/proxy_ajp.conf' }
 | |
| 
 | |
| - name: "IN CASE NGINX IS DISABLED: Enable IIAB pages via Apache (e.g. on port 80) by running 'a2ensite 010-iiab.conf'"
 | |
|   command: a2ensite 010-iiab.conf
 | |
|   #when: apache_enabled
 | |
| 
 | |
| # - name: Disable IIAB pages via Apache (e.g. on port 80) by running 'a2dissite 010-iiab.conf', if not apache_enabled"
 | |
| #   command: a2dissite 010-iiab.conf
 | |
| #   when: not apache_enabled
 | |
| 
 | |
| 
 | |
| - debug:
 | |
|     msg: roles/httpd/tasks/homepage.yml will run LATER (invoked by roles/www_options/tasks/main.yml) SO THAT APACHE CAN REDIRECT http://box TO http://box{{ iiab_home_url }} (based on var iiab_home_url)
 | |
| # - include_tasks: roles/httpd/tasks/homepage.yml
 | |
| 
 | |
| - name: Run 'systemctl daemon-reload'
 | |
|   systemd:
 | |
|     daemon_reload: yes
 | |
| 
 | |
| 
 | |
| # RECORD Apache AS INSTALLED
 | |
| 
 | |
| - name: "Set 'apache_installed: True'"
 | |
|   set_fact:
 | |
|     apache_installed: True
 | |
| 
 | |
| - name: "Add 'apache_installed: True' to {{ iiab_state_file }}"
 | |
|   lineinfile:
 | |
|     path: "{{ iiab_state_file }}"    # /etc/iiab/iiab_state.yml
 | |
|     regexp: '^apache_installed'
 | |
|     line: 'apache_installed: True'
 |