Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit 019020d

Browse files
committedFeb 6, 2024·
Use apt preferences instead of dpkg holds
1 parent 55a41ee commit 019020d

File tree

7 files changed

+31
-24
lines changed

7 files changed

+31
-24
lines changed
 

‎defaults/main.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ consul_repository_key_path: /usr/share/keyrings/consul.asc
55
#consul_repository_key_checksum:
66

77
#consul_package_version:
8-
#consul_package_dpkg_selection: hold
8+
consul_package_pin_priority: 990
99
consul_package_state: present
1010
consul_package_policy_rc_d: 101
1111

‎molecule/default/inventory/group_vars/consul_servers.yml

+1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
---
2+
consul_package_version: "1.16.5*"
23
consul_server: true
34

45
consul_server_group_configuration:

‎molecule/default/inventory/host_vars/client1.yml

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
---
2-
consul_package_version: 1.15.1-1
3-
consul_package_dpkg_selection: hold
2+
consul_package_version: "1.15.1-1"
43

54
consul_client_host_configuration:
65
retry_join: >-

‎molecule/default/verify.yml

+12-10
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,14 @@
1616
hosts: consul_servers
1717
gather_facts: false
1818
tasks:
19+
- name: Ensure expected Consul version is installed
20+
ansible.builtin.command: dpkg-query -f '${Version}' -W consul
21+
register: result
22+
changed_when: false
23+
failed_when: >-
24+
result.rc != 0 or
25+
result.stdout is not match("1\.16\.5")
26+
1927
- name: Ensure Consul is running
2028
ansible.builtin.service:
2129
name: consul-server
@@ -49,19 +57,13 @@
4957
hosts: client1
5058
gather_facts: false
5159
tasks:
52-
- name: Check dpkg selection state
53-
ansible.builtin.dpkg_selections:
54-
name: consul
55-
selection: "{{ consul_package_dpkg_selection }}"
56-
check_mode: true
57-
register: result
58-
failed_when: result is changed
59-
60-
- name: Check installed package version
60+
- name: Ensure expected Consul version is installed
6161
ansible.builtin.command: dpkg-query -f '${Version}' -W consul
6262
register: result
63-
failed_when: result.stdout != consul_package_version
6463
changed_when: false
64+
failed_when: >-
65+
result.rc != 0 or
66+
result.stdout != "1.15.1-1"
6567
6668
- name: Add a key/value entry to Consul
6769
community.general.consul_kv:

‎tasks/main.yml

+7-11
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,19 @@
11
- name: Install package repository
22
ansible.builtin.include_tasks: repository.yml
33

4+
- name: Install Consul apt preferences
5+
ansible.builtin.template:
6+
src: etc/apt/preferences.d/99-ansible-consul.j2
7+
dest: /etc/apt/preferences.d/99-ansible-consul
8+
mode: "0644"
9+
410
- name: Install Consul package
511
ansible.builtin.apt:
6-
name: >-
7-
{{
8-
'consul={}'.format(consul_package_version) if (consul_package_version | d())
9-
else 'consul'
10-
}}
12+
name: "{{ consul_package }}"
1113
state: "{{ consul_package_state }}"
1214
policy_rc_d: "{{ consul_package_policy_rc_d }}"
1315
ignore_errors: "{{ ansible_check_mode }}"
1416

15-
- name: Set Consul package dpkg selection state
16-
ansible.builtin.dpkg_selections:
17-
name: consul
18-
selection: "{{ consul_package_dpkg_selection }}"
19-
when: consul_package_dpkg_selection | d()
20-
2117
- name: Mask Consul service installed by package
2218
ansible.builtin.systemd:
2319
name: consul
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
#jinja2: trim_blocks: True, lstrip_blocks: True
2+
# {{ ansible_managed }}
3+
{% if consul_package_version|d() %}
4+
5+
Package: {{ consul_package }}
6+
Pin: version {{ consul_package_version }}
7+
Pin-Priority: {{ consul_package_pin_priority }}
8+
{% endif %}

‎vars/main.yml

+1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
---
2+
consul_package: consul
23
consul_binary_path: /usr/bin/consul
34
consul_client_service_name: consul-client
45
consul_server_service_name: consul-server

0 commit comments

Comments
 (0)
Please sign in to comment.