Use ugly `zypper lr --uri` hack to get around failure if the `base_url`
already exists under a different name:
```
ID: salt-pkgrepo-install-saltstack-suse
Function: pkgrepo.managed
Name: systemsmanagement_saltstack_products
Result: False
Comment: Failed to configure repo 'systemsmanagement_saltstack_products':
Repository 'systemsmanagement_saltstack_products' already exists as 'systemsmanagement_saltstack'.
Started: 09:28:39.154054
Duration: 2760.727 ms
```
Upstream code:
* 45cc49daed/salt/modules/zypperpkg.py (L1262-L1265)
* Semi-automated using https://github.com/myii/ssf-formula/pull/31
* Includes:
- Update TOFS
- Use `bin/kitchen`
- Use `dist: bionic` in Travis
- Add `yamllint` and apply rules
- Use `pillars_from_files` throughout
- Replace EOL images in Kitchen & Travis
- Add `develop` images in Kitchen & Travis
* Fix (or ignore) errors shown below:
```bash
salt-formula$ yamllint -s .
./pillar.example
1:1 warning missing document start "---" (document-start)
5:23 warning truthy value should be one of [false, true] (truthy)
8:25 warning truthy value should be one of [false, true] (truthy)
11:25 warning truthy value should be one of [false, true] (truthy)
19:21 warning truthy value should be one of [false, true] (truthy)
40:89 error line too long (108 > 88 characters) (line-length)
41:89 error line too long (112 > 88 characters) (line-length)
43:89 error line too long (112 > 88 characters) (line-length)
45:89 error line too long (110 > 88 characters) (line-length)
47:89 error line too long (89 > 88 characters) (line-length)
74:27 warning truthy value should be one of [false, true] (truthy)
82:9 error wrong indentation: expected 10 but found 8 (indentation)
101:14 warning truthy value should be one of [false, true] (truthy)
102:20 warning truthy value should be one of [false, true] (truthy)
103:89 error line too long (119 > 88 characters) (line-length)
121:7 warning comment not indented like content (comments-indentation)
122:24 error syntax error: found character '%' that cannot start any token
310:89 error line too long (102 > 88 characters) (line-length)
330:89 error line too long (113 > 88 characters) (line-length)
433:1 error too many blank lines (1 > 0) (empty-lines)
./salt/osmap.yaml
4:2 error syntax error: found character '%' that cannot start any token
6:89 error line too long (93 > 88 characters) (line-length)
22:89 error line too long (137 > 88 characters) (line-length)
23:89 error line too long (134 > 88 characters) (line-length)
33:89 error line too long (149 > 88 characters) (line-length)
34:89 error line too long (146 > 88 characters) (line-length)
./salt/osfamilymap.yaml
4:2 error syntax error: found character '%' that cannot start any token
6:89 error line too long (94 > 88 characters) (line-length)
24:89 error line too long (149 > 88 characters) (line-length)
25:89 error line too long (146 > 88 characters) (line-length)
39:89 error line too long (105 > 88 characters) (line-length)
40:89 error line too long (127 > 88 characters) (line-length)
56:89 error line too long (101 > 88 characters) (line-length)
./salt/ospyvermap.yaml
4:1 warning missing document start "---" (document-start)
./salt/defaults.yaml
3:1 warning missing document start "---" (document-start)
7:21 warning truthy value should be one of [false, true] (truthy)
8:12 warning truthy value should be one of [false, true] (truthy)
9:23 warning truthy value should be one of [false, true] (truthy)
10:19 warning truthy value should be one of [false, true] (truthy)
14:25 warning truthy value should be one of [false, true] (truthy)
15:25 warning truthy value should be one of [false, true] (truthy)
16:27 warning truthy value should be one of [false, true] (truthy)
17:27 warning truthy value should be one of [false, true] (truthy)
39:28 warning truthy value should be one of [false, true] (truthy)
41:28 warning truthy value should be one of [false, true] (truthy)
45:24 warning truthy value should be one of [false, true] (truthy)
49:30 warning truthy value should be one of [false, true] (truthy)
54:28 warning truthy value should be one of [false, true] (truthy)
63:25 warning truthy value should be one of [false, true] (truthy)
68:15 warning truthy value should be one of [false, true] (truthy)
```
Use py3 for latest salt version
Use Python 2 on old distros
Update Gemfile
Updated centos-6 run_command, as it does not use systemd
Added tests to verify correct package versions for all cases tested
SaltStack provides "versioned" repositories, this commit add a way
to set which release of salt to use.
It adds a pillar "salt:release" which can be set to a specific release
(ex: 2016.11). This release is then used to configure properly the
repositories URLs for Debian/Ubuntu/RedHat.
The default behavior is to point to 'latest', retaining the previous
behavior if the "salt:release" pillar is not set.
* Install pygit from package
* Add Official Salt ZeroMQ 4 COPR repository
Note that Salt itself is assumed to already to be available to the system via yum, via EPEL for example