ibm-spectrum-scale-install-infra
ibm-spectrum-scale-install-infra copied to clipboard
Support for tags to execute only specific parts of the roles
Meanwhile I have used the Ansible scripts to create about 20 Spectrum Scale clusters with varying configurations. Moving forward it would be nice to have a capability to run selected parts of the roles only. Ansible has the concepts of tags to do exactly this.
For Spectrum Scale roles I would recommend to consider the following tags:
check_install_prerequisites I have hardened server images. I need to know that I have everything in place to install and run Spectrum Scale. By all means I do not want the Spectrum Scale roles to make any changes in the operating system (e.g. install additional software packages beyond Spectrum Scale, make changes in firewall configuration, etc.). I need to review each change to be compliant to my companies security guidelines.
configure_install_prerequisites I want to install Spectrum Scale quickly. Please do all the changes in the operating system for me, so that I can proceed quickly with my proof-of-concept.
do_install I know that my server meets all prerequisites for Spectrum Scale. Please just install it without any prior checking.
check_build_prerequisites I do not want to have the compiler, the kernel headesr and all the other stuff on my production VMs. Therefore I want to create the packages with the GPL layer separately. I need to know which additional packages I need to install on my build system.
configure_build_prerequisites I want to install Spectrum Scale quickly. Please do all the changes in the operating system for me, so that I can proceed quickly with my proof-of-concept.
do_build I know that my server meets all prerequisites for build the GPL layer. Please just compile it without any prior checking.
check_configuration Please validate my configuration and tell me if I made any mistakes. It is hard to make this generic, but some elementary things could be checked, e.g., number of quorum nodes.
do_configuration I know my configuration is good. Please just configure and start Spectrum Scale without any prior checking.
check_update This needs more thought. I am thinking about the impact of the update. E.g., would it trigger a reboot of a quorum node. Please give me a warning so that I can move quorum prior update.
do_update I know that I am ready for update. Please just do it for me as smoothly as possible.
This is an older one already, please allow me to add my thoughts nevertheless:
I like the idea of making it easy for users to adopt this project to their specific use case. This includes running only the necessary parts and skipping all unnecessary parts (in a given scenario). The list you provide is definitely a good start - thanks for that!
I am, however, unsure if Ansible tags are the appropriate method to implement this idea:
- we already have a number of roles which users can choose from (some are mandatory, others are optional)
- we have a number of variables which users can define to enable / disable certain functionality
I'm not sure that adding tags as a third method for configuring things will really enable flexibility which we do not have with the other two methods. But maybe I'm missing something here?
Hence, I'd suggest to add clear documentation on how to use this project in a given scenario. This should include information which roles and which variables should be defined. I'd suggest to add samples in a dedicated directory (see #237) and reference each sample from the main README. If we come to a point at which roles & vars do not provide sufficient flexibility then we might re-consider usage of tags...