General comment:
For this new instance of Jira, I would like to change the domain name to jira.bioviz.org instead of jira.transvar.org.
This is a pretty huge change because that link is repeated in many locations. But the address "jira.bioviz.org" is much better and easier to remember.
Good news is that this makes our migration process a bit easier.
Also, wherever possible, please use the "defaults" main.yml file within each role to provide reasonable defaults for as many variables as possible.
For example, use defaults to specify the Amazon availability zone – us east for us.
Some change and clarification requests:
group_vars/common.yml:
Comments:
- Comments explaining "upgrade_jira_version" suggest that the user can enter whatever version they want. I'm pretty sure this is not the case because the upgrade needs to happen in a sequence, as you discovered. Do please clarify in the comments what values are allowed. However, if you are finding you have to write a lot of text to explain it, don't. Instead, explain it in the top-level README.md file. (See end of this comment for more on that.)
- Explain what "UPM" plugin is. Spell out the acronym and provide a link if that clarifies things. Fix typo.
Functionality change request:
- I would like for the user to place the certificate files within a "files" directory of the httpd role, not the home directory of the control node ansible user. Modify httpd role accordingly and also update the comments in common.yml. I believe the copy command will (by default) look for files to copy from within that directory.
- Please change variable "current_jira_version" to "legacy_jira_version"
(The word "current" is confusing because it could mean the Jira version we are using right now or it could mean the highest Jira version currently available.)
example_secrets.yml:
- Clarify in README.md or here in the comments: Should these be the same passwords already used by the clone's MySQL database? It is not clear how the user is supposed to select these passwords.
- Remove the dummy fake passwords. At this point, the main user (me) understands how to configure an ansible variables file. But if I stupidly forget and just copy example_secrets.yml to secrets.yml, then the example passwords will be used and our site will become super easy to hack.
httpd role:
- Please do not put the apache configuration files into the ansible playbooks repository. Instead, please use ansible's file editing modules to modify the apache configuration files that are installed with apache. Maybe take a look at how the appstore playbooks are doing that.
- At this point, you should also look at Gerlinguy's ansible galaxy httpd role. Review the first few chapters of the book you got from us a few weeks
ago.
General comment: I am uneasy about our version-controlling other application's configuration files that are managed by other people and could change without warning. Instead, when we install software that contains configuration files that need to be edited by us, we should use ansible to do the editing.
mysql role:
- There are two database names mentioned: bioviz_db_name and jira_db_name. Maybe this is a typo?
- The following comment looks wrong - the passwords are in the secrets.yml file:
- name: Create database user with name in /group_vars/common.yml and password mentioned in the /group_vars/common.yml with all database privileges
roles/upgrade_jira/files/check-java.sh:
This looks like something that copied from the Jira software package. It does not appear to be needed here. Please remove it if yes.
roles/upgrade_jira/tasks/main.yml:
This comment was a bit confusing to me:
+# This script covers the standard steps for JIRA software upgrade
+# Changes to dbconfig.xml in the future can simply be added to the templates folder
+# with the name dbconfig-{{ upgrade_jira_version }}.xml
+# The playbooks will automatically pick any dbconfig found for the JIRA version.
+#
This makes it sound like if I want to upgrade a running Jira instance, I put a file named for the Jira instance in the "templates" folder? Is this meant to support future upgrades? I would just delete this comment altogether and instead edit the top-level README.md to contain this information.
In my view, the project-level README.md is a much better place to describe how the plays are meant to work.
So do please add more instructions to the top-level README.md file.
- Explain how the initial deployment of the clone should be done, using the "tarballs" with Jira home directory (from jira.transvar.org) and its mysqldump output - the SQL tarball.
- Then describe step-by-step how the upgrade to the latest version of Jira should be done on the clone.
- I recommend dividing these two tasks into two different "setup.yml" style playbooks to reside at the top-level of the project - "clone.yml" and then "upgrade.yml"
Current Upgrade plan
6.3.15->6.4.14->7.0.11->8.10
https://confluence.atlassian.com/adminjiraserver074/upgrading-jira-applications-using-the-installer-881683273.html?_ga=2.219711518.684639599.1593546483-821977391.1584022985#UpgradingJIRAapplicationsusingtheinstaller-1.Determineyourupgradepath