Instructions ot upgrade the ELK stack

I am trying to upgrade ELK stack (L 2.1.2, E 2.1.2, K 4.3.1) to (L 2.2.0, E 2.2.0, K 4.4.0) in a windows 10 environment.

I assembled the following instructions.
Please, correct, suggest, advice, expand, or critique.

Upgrading the ELK stack

Assuming a direct download upgrade. No roll over.

Upgrade Logstash
Follow the instructions in
https://www.elastic.co/guide/en/logstash/current/_upgrading_using_a_direct_download.html
However, keep the config file outside the logstash directory and point to it via
-f <configuration-file>

Upgrade Elasticsearch
Snapshots will keep the data
https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-snapshots.html
But will they keep the:
1- templates

However, keep the config file outside the elasticsearch directory and point to it via
-Des.path.conf= <path to directory with the elasticsearch yml file>

Upgrade Kibana
How do we keep the
1- dashboards, and visualizations (export/import ?),
2- indices and field type specializations (such as strings specialized as urls),
3- advanced settings (time zone, date format, meta fields,... ),
4- data,
5- configuration (yml),
6- plugins.

Script?
Finally, is there a script that will enable such upgrades?
Elastic is active providing bug fixes and upgrades frequently.

Why not use packages?

Also, as long as you don't delete the data in ES then the templates will exist after the upgrade.
For KB, most of that is stored in the .kibana index in ES, so see my previous comment.

What do you mean by "packages" ?

https://www.elastic.co/guide/en/elasticsearch/reference/2.2/setup-repositories.html