Skip to content

Commit cf9d52c

Browse files
authored
Merge pull request #768 from ceph/wip-useradd-selinux
Creating a selinux module to resolve selinux conflicts with grafana agent
2 parents 4ff823e + 306f410 commit cf9d52c

File tree

5 files changed

+60
-0
lines changed

5 files changed

+60
-0
lines changed

roles/grafana_agent/defaults/main.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,3 +9,8 @@ grafana_rpm_repo_key_url: "https://rpm.grafana.com/gpg.key"
99

1010
scrape_interval_global: "60s"
1111
scrape_interval_node: "30s"
12+
13+
# Selinux packages
14+
useradd_selinux_packages:
15+
- policycoreutils
16+
- checkpolicy
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
module customuseradd 1.0;
2+
3+
require {
4+
type useradd_t;
5+
type var_lib_t;
6+
class file { execute read create write getattr setattr
7+
open };
8+
}
9+
10+
#============= useradd_t ==============
11+
12+
allow useradd_t var_lib_t:file { write create open setattr getattr };

roles/grafana_agent/tasks/main.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,10 @@
88
- name: Gather facts on listening ports
99
community.general.listen_ports_facts:
1010

11+
# Resolving selinux conflicts
12+
- import_tasks: useradd-selinux.yml
13+
when: ansible_os_family == "RedHat"
14+
1115
- name: Check if prometheus is listening on port 9090
1216
ansible.builtin.debug:
1317
msg: The {{ item.name }} service - pid {{ item.pid }} is running on same port as grafana-agent please set {{ item.name }} to listen on a diffrent port than {{ item.port }}
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
---
2+
- name: useradd - Install SELinux dependencies
3+
package:
4+
name: "{{ useradd_selinux_packages|list }}"
5+
state: present
6+
7+
# ignore_errors in case we don't have any repos
8+
- name: useradd - Ensure SELinux policy is up to date
9+
package:
10+
name: selinux-policy-targeted
11+
state: latest
12+
ignore_errors: true
13+
14+
- name: useradd - Copy SELinux type enforcement file
15+
copy:
16+
src: grafana/customuseradd.te
17+
dest: /tmp/customuseradd.te
18+
19+
- name: useradd - Compile SELinux module file
20+
command: checkmodule -M -m -o /tmp/customuseradd.mod /tmp/customuseradd.te
21+
22+
- name: useradd - Build SELinux policy package
23+
command: semodule_package -o /tmp/customuseradd.pp -m /tmp/customuseradd.mod
24+
25+
- name: useradd - Load SELinux policy package
26+
command: semodule -i /tmp/customuseradd.pp
27+
28+
- name: useradd - Remove temporary files
29+
file:
30+
path: /tmp/customuseradd.*
31+
state: absent
32+
33+
- name: Verify SELinux module is installed
34+
command: semodule -l
35+
register: semodule_list
36+
changed_when: false
37+
failed_when: "'customuseradd' not in semodule_list.stdout"
38+

testnodes.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,5 @@
44
roles:
55
- common
66
- testnode
7+
- grafana_agent
78
become: true

0 commit comments

Comments
 (0)