New configuration method
							parent
							
								
									446997f69b
								
							
						
					
					
						commit
						7eed88df04
					
				|  | @ -18,9 +18,12 @@ Role Variables | |||
| 
 | ||||
| ### Configuration | ||||
| 
 | ||||
| - `mysql_cnf`: key/value hash see [defaults/main.yml](default vars file) | ||||
| - `mysql_root_password`: root password (should be protected with [vault](http://docs.ansible.com/playbooks_vault.html)) | ||||
| 
 | ||||
| If you need a feature you can't configure, you can use this list. These config will go to `/etc/mysql/conf.d/01-extra`. | ||||
| 
 | ||||
| - `mysql_extra_config`: key/value hash see [defaults/main.yml](default vars file) | ||||
| 
 | ||||
| ### Databases | ||||
| 
 | ||||
| - `mysql_databases`: list... | ||||
|  | @ -69,4 +72,5 @@ Author Information | |||
| 
 | ||||
| - You can find many other roles in my GitHub "lab": https://github.com/HanXHX/my-ansible-playbooks | ||||
| - All issues, pull-request are welcome :) | ||||
| - Few code come from [geerlingguy](https://github.com/geerlingguy) | ||||
| 
 | ||||
|  |  | |||
|  | @ -10,13 +10,65 @@ mysql_root_password: 'change_me_NOW' | |||
| # ------------------------------------- | ||||
| # Configuration | ||||
| # ------------------------------------- | ||||
| mysql_cnf: | ||||
|   - group_name: 'mysqld' | ||||
|     conf: | ||||
|       - key: 'innodb_file_per_table' | ||||
|         value: 1 | ||||
|       - key: 'innodb_buffer_pool_size' # 60% available RAM :) | ||||
|         value: '{{ (ansible_memtotal_mb * 0.6) | round | int }}M' | ||||
| 
 | ||||
| # MySQL connection settings. | ||||
| mysql_port: "3306" | ||||
| mysql_bind_address: '127.0.0.1' | ||||
| mysql_datadir: '/var/lib/mysql' | ||||
| mysql_pid_file: '/var/run/mysqld/mysqld.pid' | ||||
| mysql_socket: '/var/run/mysqld/mysqld.sock' | ||||
| 
 | ||||
| # Slow query log settings. | ||||
| mysql_slow_query_log_enabled: false | ||||
| mysql_slow_query_log_file: '/var/log/mysql-slow.log' | ||||
| mysql_slow_query_time: 2 | ||||
| 
 | ||||
| # Memory settings (default values optimized ~512MB RAM). | ||||
| mysql_key_buffer_size: '256M' | ||||
| mysql_max_allowed_packet: '64M' | ||||
| mysql_table_open_cache: '256' | ||||
| mysql_sort_buffer_size: '1M' | ||||
| mysql_read_buffer_size: '1M' | ||||
| mysql_read_rnd_buffer_size: '4M' | ||||
| mysql_myisam_sort_buffer_size: '64M' | ||||
| mysql_thread_cache_size: '8' | ||||
| mysql_query_cache_size: '16M' | ||||
| 
 | ||||
| # Other settings. | ||||
| mysql_wait_timeout: 28800 | ||||
| 
 | ||||
| # Try number of CPU's * 2 for thread_concurrency. | ||||
| mysql_thread_concurrency: 2 | ||||
| 
 | ||||
| # InnoDB settings. | ||||
| mysql_innodb_file_per_table: '1' | ||||
| mysql_innodb_buffer_pool_size: "{{ (ansible_memtotal_mb * 0.6) | round | int }}M" | ||||
| mysql_innodb_additional_mem_pool_size: '20M' | ||||
| mysql_innodb_log_file_size: '64M' | ||||
| mysql_innodb_log_buffer_size: '8M' | ||||
| mysql_innodb_flush_log_at_trx_commit: '1' | ||||
| mysql_innodb_lock_wait_timeout: 50 | ||||
| 
 | ||||
| # mysqldump settings. | ||||
| mysql_mysqldump_max_allowed_packet: '64M' | ||||
| 
 | ||||
| # Logging settings. | ||||
| mysql_log: '' | ||||
| mysql_log_error: '/var/log/mysql.err' | ||||
| mysql_syslog_tag: 'mysql' | ||||
| 
 | ||||
| # ------------------------------------- | ||||
| # Extra configuration | ||||
| # ------------------------------------- | ||||
| # | ||||
| mysql_extra_configuration: [] | ||||
| 
 | ||||
| # Example: | ||||
| #mysql_extra_configuration: | ||||
| # - group_name: 'mysqld' | ||||
| #   conf: | ||||
| #     - key: 'innodb_awsome_feature' | ||||
| #       value: 1 | ||||
| 
 | ||||
| # ------------------------------------- | ||||
| # Database / Users | ||||
|  | @ -36,4 +88,3 @@ mariadb_repository: "http://ftp.igh.cnrs.fr/pub/mariadb/repo/{{ mariadb_version | |||
| # ------------------------------------- | ||||
| percona_version: '5.6' | ||||
| percona_repository: 'http://repo.percona.com/apt' | ||||
| 
 | ||||
|  |  | |||
|  | @ -11,8 +11,12 @@ | |||
| - name: INCLUDE | Install | ||||
|   include: install.yml | ||||
| 
 | ||||
| - name: TEMPLATE | Deploy daemon configuration | ||||
|   template: src=etc/mysql/conf.d/90-config.cnf.j2 dest=/etc/mysql/conf.d/90-config.cnf | ||||
| - name: TEMPLATE | Deploy configuration | ||||
|   template: src=etc/mysql/my.cnf.j2 dest=/etc/mysql/my.cnf | ||||
|   notify: restart mysql | ||||
| 
 | ||||
| - name: TEMPLATE | Deploy extra configuration | ||||
|   template: src=etc/mysql/conf.d/10-extra.cnf.j2 dest=/etc/mysql/conf.d/10-extra.cnf | ||||
|   notify: restart mysql | ||||
| 
 | ||||
| - name: TEMPLATE Create .my.cnf for root | ||||
|  |  | |||
|  | @ -2,7 +2,7 @@ | |||
| # {{ ansible_managed }} | ||||
| # ------------------------------------------- | ||||
| 
 | ||||
| {% for i in mysql_cnf %} | ||||
| {% for i in mysql_extra_configuration %} | ||||
| [{{ i.group_name }}] | ||||
| {% for c in i.conf %} | ||||
| {% if c.value is defined %} | ||||
|  | @ -0,0 +1,84 @@ | |||
| # | ||||
| # {{ ansible_managed }} | ||||
| # | ||||
| 
 | ||||
| [client] | ||||
| port = {{ mysql_port }} | ||||
| socket = {{ mysql_socket }} | ||||
| 
 | ||||
| [mysqld] | ||||
| port = {{ mysql_port }} | ||||
| bind-address = {{ mysql_bind_address }} | ||||
| datadir = {{ mysql_datadir }} | ||||
| socket = {{ mysql_socket }} | ||||
| 
 | ||||
| # Logging configuration. | ||||
| {% if mysql_log_error == 'syslog' or mysql_log == 'syslog' %} | ||||
| syslog | ||||
| syslog-tag = {{ mysql_syslog_tag }} | ||||
| {% else %} | ||||
| {% if mysql_log %} | ||||
| log = {{ mysql_log }} | ||||
| {% endif %} | ||||
| log-error = {{ mysql_log_error }} | ||||
| {% endif %} | ||||
| 
 | ||||
| {% if mysql_slow_query_log_enabled %} | ||||
| # Slow query log configuration. | ||||
| log_slow_queries = 1 | ||||
| slow_query_log = 1 | ||||
| slow_query_log_file = {{ mysql_slow_query_log_file }} | ||||
| long_query_time = {{ mysql_slow_query_time }} | ||||
| {% endif %} | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| # Disabling symbolic-links is recommended to prevent assorted security risks | ||||
| symbolic-links = 0 | ||||
| 
 | ||||
| # User is ignored when systemd is used (fedora >= 15). | ||||
| user = mysql | ||||
| 
 | ||||
| # http://dev.mysql.com/doc/refman/5.5/en/performance-schema.html | ||||
| ;performance_schema | ||||
| 
 | ||||
| # Memory settings. | ||||
| key_buffer_size = {{ mysql_key_buffer_size }} | ||||
| max_allowed_packet = {{ mysql_max_allowed_packet }} | ||||
| table_open_cache = {{ mysql_table_open_cache }} | ||||
| sort_buffer_size = {{ mysql_sort_buffer_size }} | ||||
| read_buffer_size = {{ mysql_read_buffer_size }} | ||||
| read_rnd_buffer_size = {{ mysql_read_rnd_buffer_size }} | ||||
| myisam_sort_buffer_size = {{ mysql_myisam_sort_buffer_size }} | ||||
| thread_cache_size = {{ mysql_thread_cache_size }} | ||||
| query_cache_size = {{ mysql_query_cache_size }} | ||||
| 
 | ||||
| # Other settings. | ||||
| wait_timeout = {{ mysql_wait_timeout }} | ||||
| 
 | ||||
| # Try number of CPU's * 2 for thread_concurrency. | ||||
| thread_concurrency = {{ mysql_thread_concurrency }} | ||||
| 
 | ||||
| # InnoDB settings. | ||||
| innodb_file_per_table = {{ mysql_innodb_file_per_table }} | ||||
| innodb_buffer_pool_size = {{ mysql_innodb_buffer_pool_size }} | ||||
| innodb_additional_mem_pool_size = {{ mysql_innodb_additional_mem_pool_size }} | ||||
| innodb_log_file_size = {{ mysql_innodb_log_file_size }} | ||||
| innodb_log_buffer_size = {{ mysql_innodb_log_buffer_size }} | ||||
| innodb_flush_log_at_trx_commit = {{ mysql_innodb_flush_log_at_trx_commit }} | ||||
| innodb_lock_wait_timeout = {{ mysql_innodb_lock_wait_timeout }} | ||||
| 
 | ||||
| [mysqldump] | ||||
| quick | ||||
| max_allowed_packet = {{ mysql_mysqldump_max_allowed_packet }} | ||||
| 
 | ||||
| [mysqld_safe] | ||||
| pid-file = {{ mysql_pid_file }} | ||||
| 
 | ||||
| # | ||||
| # * IMPORTANT: Additional settings that can override those from this file! | ||||
| #   The files must end with '.cnf', otherwise they'll be ignored. | ||||
| # | ||||
| !includedir /etc/mysql/conf.d/ | ||||
| 
 | ||||
| # vim: set ft=dosini : | ||||
		Loading…
	
		Reference in New Issue