| 
									
										
										
										
											2021-05-23 23:03:41 +01:00
										 |  |  | .. page:: titlePage
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .. class:: centredtitle
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Generating settings files per deployment
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .. page:: standardPage
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .. code-block:: yaml
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   # deploy_vars.yml
 | 
					
						
							|  |  |  |   ---
 | 
					
						
							|  |  |  |   drupal_settings:
 | 
					
						
							|  |  |  |     - drupal_root: /app/web
 | 
					
						
							|  |  |  |       sites:
 | 
					
						
							|  |  |  |         - name: default
 | 
					
						
							|  |  |  |           settings:
 | 
					
						
							|  |  |  |             databases:
 | 
					
						
							|  |  |  |               default:
 | 
					
						
							|  |  |  |                 default:
 | 
					
						
							|  |  |  |                   driver: mysql
 | 
					
						
							|  |  |  |                   host: localhost
 | 
					
						
							|  |  |  |                   database: '{{ database_name }}'
 | 
					
						
							|  |  |  |                   username: '{{ database_user }}'
 | 
					
						
							|  |  |  |                   password: '{{ database_password }}'
 | 
					
						
							|  |  |  |             hash_salt: '{{ hash_salt }}'
 | 
					
						
							|  |  |  |             config_directories:
 | 
					
						
							|  |  |  |               sync: ../config/sync
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-05-10 22:37:50 +02:00
										 |  |  | .. raw:: pdf
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     PageBreak
 | 
					
						
							| 
									
										
										
										
											2021-05-23 23:03:41 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | .. code-block:: jinja
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     {# templates/settings.php.j2 #}
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     {% for key, values in item.1.settings.databases.items() %}
 | 
					
						
							|  |  |  |     {% for target, values in values.items() %}
 | 
					
						
							|  |  |  |     $databases['{{ key }}']['{{ target }}'] = array(
 | 
					
						
							|  |  |  |       'driver' => '{{ values.driver|default('mysql') }}',
 | 
					
						
							|  |  |  |       'host' => '{{ values.host|default('localhost') }}',
 | 
					
						
							|  |  |  |       'database' => '{{ values.database }}',
 | 
					
						
							|  |  |  |       'username' => '{{ values.username }}',
 | 
					
						
							|  |  |  |       'password' => '{{ values.password }}',
 | 
					
						
							|  |  |  |     );
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     {% endfor %}
 | 
					
						
							|  |  |  |     {% endfor %}
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     {% if item.1.settings.base_url is defined %}
 | 
					
						
							|  |  |  |     $base_url = '{{ item.1.settings.base_url }}';
 | 
					
						
							|  |  |  |     {% endif %}
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-05-10 22:37:50 +02:00
										 |  |  | .. raw:: pdf
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     PageBreak
 | 
					
						
							| 
									
										
										
										
											2021-05-23 23:03:41 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .. code-block:: yaml
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   # tasks/main.yml
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   ---
 | 
					
						
							|  |  |  |   - name: Ensure directory exists
 | 
					
						
							|  |  |  |     file:
 | 
					
						
							|  |  |  |       state: directory
 | 
					
						
							|  |  |  |       path: '{{ item.0.drupal_root }}/sites/{{ item.1.name|default("default") }}'
 | 
					
						
							|  |  |  |     with_subelements:
 | 
					
						
							|  |  |  |       - '{{ drupal_settings }}'
 | 
					
						
							|  |  |  |       - sites
 | 
					
						
							|  |  |  |     no_log: true
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   - name: Create settings files
 | 
					
						
							|  |  |  |     template:
 | 
					
						
							|  |  |  |       src: settings.php.j2
 | 
					
						
							|  |  |  |       dest:
 | 
					
						
							|  |  |  |         '{{ item.0.drupal_root }}/sites/{{ item.1.name|default("default") }}/{{
 | 
					
						
							|  |  |  |         item.1.filename|default("settings.php") }}'
 | 
					
						
							|  |  |  |     with_subelements:
 | 
					
						
							|  |  |  |       - '{{ drupal_settings }}'
 | 
					
						
							|  |  |  |       - sites
 | 
					
						
							|  |  |  |     no_log: true
 | 
					
						
							|  |  |  | 
 |