Refactoring the MySQL role
Our existing MySQL role installs and configures only the server. More often than not, all we need to do is just install the MySQL client package and not the server. We don't have the ability to selectively do so.
Note
The scenario:
We have been tasked to refactor the MySQL role and make it conditionally install the MySQL server based on a variable value. By default, it should just install MySQL client packages.
Boolean variables could be useful to set up an an on/off switch. We will add a variable and set its default value to false
. This time, we will create a multilevel variable or a nested hash.
Multilevel variable dictionaries
So far, we have been naming variables as mysql_bind
, mysql_port
, and so on and using an underscore to categorize them. Variables can instead be better categorized and organized if you define them with multiple-level dictionaries, for example:
mysql: config: bind: 127.0.0.1 port: 3306
Multilevel variables can then be accessed...