mirror of
https://github.com/centreon/centreon-plugins.git
synced 2025-07-15 09:44:42 +02:00
feat(ci): package centreon-plugins-selinux (#4640)
This commit is contained in:
parent
310b84eb09
commit
a931898345
@ -10,7 +10,7 @@ baseurl=https://repo.goreleaser.com/yum/
|
|||||||
enabled=1
|
enabled=1
|
||||||
gpgcheck=0' | tee /etc/yum.repos.d/goreleaser.repo
|
gpgcheck=0' | tee /etc/yum.repos.d/goreleaser.repo
|
||||||
|
|
||||||
dnf -y install gcc git gettext rpm-build dos2unix python3 epel-release nfpm openssl-devel jq zstd
|
dnf -y install gcc git gettext rpm-build dos2unix python3 epel-release nfpm openssl-devel jq zstd selinux-policy-devel
|
||||||
dnf -y install perl-App-cpanminus perl-JSON
|
dnf -y install perl-App-cpanminus perl-JSON
|
||||||
cpanm App::FatPacker
|
cpanm App::FatPacker
|
||||||
cpanm File::Copy::Recursive
|
cpanm File::Copy::Recursive
|
||||||
|
@ -10,7 +10,7 @@ baseurl=https://repo.goreleaser.com/yum/
|
|||||||
enabled=1
|
enabled=1
|
||||||
gpgcheck=0' | tee /etc/yum.repos.d/goreleaser.repo
|
gpgcheck=0' | tee /etc/yum.repos.d/goreleaser.repo
|
||||||
|
|
||||||
dnf -y install gcc git gettext rpm-build dos2unix python3 epel-release nfpm openssl-devel jq zstd
|
dnf -y install gcc git gettext rpm-build dos2unix python3 epel-release nfpm openssl-devel jq zstd selinux-policy-devel
|
||||||
dnf -y install perl-App-cpanminus perl-JSON
|
dnf -y install perl-App-cpanminus perl-JSON
|
||||||
cpanm App::FatPacker
|
cpanm App::FatPacker
|
||||||
cpanm File::Copy::Recursive
|
cpanm File::Copy::Recursive
|
||||||
|
91
.github/workflows/plugins-selinux.yml
vendored
Normal file
91
.github/workflows/plugins-selinux.yml
vendored
Normal file
@ -0,0 +1,91 @@
|
|||||||
|
name: plugins-selinux
|
||||||
|
|
||||||
|
concurrency:
|
||||||
|
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
|
||||||
|
cancel-in-progress: true
|
||||||
|
|
||||||
|
on:
|
||||||
|
workflow_dispatch:
|
||||||
|
pull_request:
|
||||||
|
paths:
|
||||||
|
- 'selinux/**'
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- develop
|
||||||
|
- master
|
||||||
|
paths:
|
||||||
|
- 'selinux/**'
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
get-environment:
|
||||||
|
uses: ./.github/workflows/get-environment.yml
|
||||||
|
with:
|
||||||
|
version_file: selinux/packaging/centreon-plugins-selinux.yaml
|
||||||
|
|
||||||
|
package:
|
||||||
|
needs: [get-environment]
|
||||||
|
runs-on: ubuntu-22.04
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
include:
|
||||||
|
- package_extension: rpm
|
||||||
|
image: packaging-plugins-alma8
|
||||||
|
distrib: el8
|
||||||
|
- package_extension: rpm
|
||||||
|
image: packaging-plugins-alma9
|
||||||
|
distrib: el9
|
||||||
|
|
||||||
|
container:
|
||||||
|
image: ${{ vars.DOCKER_INTERNAL_REGISTRY_URL }}/${{ matrix.image }}
|
||||||
|
credentials:
|
||||||
|
username: ${{ secrets.DOCKER_REGISTRY_ID }}
|
||||||
|
password: ${{ secrets.DOCKER_REGISTRY_PASSWD }}
|
||||||
|
|
||||||
|
name: package ${{ matrix.distrib }}
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout sources
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
|
- name: Generate selinux binary
|
||||||
|
run: |
|
||||||
|
cd selinux/src
|
||||||
|
sed -i "s/@VERSION@/${{ needs.get-environment.outputs.version }}/g" centreon-plugins.te
|
||||||
|
make -f /usr/share/selinux/devel/Makefile
|
||||||
|
shell: bash
|
||||||
|
|
||||||
|
- name: Package
|
||||||
|
uses: ./.github/actions/package
|
||||||
|
with:
|
||||||
|
nfpm_file_pattern: "selinux/packaging/centreon-plugins-selinux.yaml"
|
||||||
|
distrib: ${{ matrix.distrib }}
|
||||||
|
package_extension: ${{ matrix.package_extension }}
|
||||||
|
version: ${{ needs.get-environment.outputs.version }}
|
||||||
|
release: ${{ needs.get-environment.outputs.release }}
|
||||||
|
commit_hash: ${{ github.sha }}
|
||||||
|
cache_key: ${{ github.sha }}-${{ github.run_id }}-${{ matrix.package_extension }}-${{ matrix.distrib }}
|
||||||
|
rpm_gpg_key: ${{ secrets.RPM_GPG_SIGNING_KEY }}
|
||||||
|
rpm_gpg_signing_key_id: ${{ secrets.RPM_GPG_SIGNING_KEY_ID }}
|
||||||
|
rpm_gpg_signing_passphrase: ${{ secrets.RPM_GPG_SIGNING_PASSPHRASE }}
|
||||||
|
|
||||||
|
deliver-rpm:
|
||||||
|
needs: [get-environment, package]
|
||||||
|
if: ${{ contains(fromJson('["stable", "testing", "unstable"]'), needs.get-environment.outputs.stability) }}
|
||||||
|
runs-on: [self-hosted, common]
|
||||||
|
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
distrib: [el8, el9]
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout sources
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
|
- name: Delivery
|
||||||
|
uses: ./.github/actions/rpm-delivery
|
||||||
|
with:
|
||||||
|
module_name: plugins-selinux
|
||||||
|
distrib: ${{ matrix.distrib }}
|
||||||
|
cache_key: ${{ github.sha }}-${{ github.run_id }}-rpm-${{ matrix.distrib }}
|
||||||
|
stability: ${{ needs.get-environment.outputs.stability }}
|
||||||
|
artifactory_token: ${{ secrets.ARTIFACTORY_ACCESS_TOKEN }}
|
42
selinux/packaging/centreon-plugins-selinux.yaml
Normal file
42
selinux/packaging/centreon-plugins-selinux.yaml
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
name: "centreon-plugins-selinux"
|
||||||
|
arch: "amd64"
|
||||||
|
platform: "linux"
|
||||||
|
version_schema: "none"
|
||||||
|
version: "0.0.8"
|
||||||
|
release: "${RELEASE}${DIST}"
|
||||||
|
section: "default"
|
||||||
|
priority: "optional"
|
||||||
|
maintainer: "Centreon <contact@centreon.com>"
|
||||||
|
description: |
|
||||||
|
SELinux context for centreon-plugins
|
||||||
|
vendor: "Centreon"
|
||||||
|
homepage: "https://centreon.com"
|
||||||
|
license: "Apache-2.0"
|
||||||
|
|
||||||
|
depends:
|
||||||
|
- policycoreutils
|
||||||
|
- centreon-common-selinux
|
||||||
|
- centreon-engine-selinux
|
||||||
|
- centreon-broker-selinux
|
||||||
|
replaces:
|
||||||
|
- centreon-plugins-selinux-debuginfo
|
||||||
|
conflicts:
|
||||||
|
- centreon-plugins-selinux-debuginfo
|
||||||
|
provides:
|
||||||
|
- centreon-plugins-selinux-debuginfo
|
||||||
|
|
||||||
|
contents:
|
||||||
|
- src: "../src/centreon-plugins.pp"
|
||||||
|
dst: "/usr/share/selinux/packages/centreon/centreon-plugins.pp"
|
||||||
|
file_info:
|
||||||
|
mode: 0655
|
||||||
|
|
||||||
|
scripts:
|
||||||
|
postinstall: ./scripts/centreon-plugins-selinux-postinstall.sh
|
||||||
|
preremove: ./scripts/centreon-plugins-selinux-preremove.sh
|
||||||
|
|
||||||
|
rpm:
|
||||||
|
summary: SELinux context for centreon-plugins
|
||||||
|
signature:
|
||||||
|
key_file: ${RPM_SIGNING_KEY_FILE}
|
||||||
|
key_id: ${RPM_SIGNING_KEY_ID}
|
@ -0,0 +1,25 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
install() {
|
||||||
|
semodule -i /usr/share/selinux/packages/centreon/centreon-plugins.pp > /dev/null 2>&1 || :
|
||||||
|
}
|
||||||
|
|
||||||
|
upgrade() {
|
||||||
|
semodule -i /usr/share/selinux/packages/centreon/centreon-plugins.pp > /dev/null 2>&1 || :
|
||||||
|
}
|
||||||
|
|
||||||
|
action="$1"
|
||||||
|
if [ "$1" = "configure" ] && [ -z "$2" ]; then
|
||||||
|
action="install"
|
||||||
|
elif [ "$1" = "configure" ] && [ -n "$2" ]; then
|
||||||
|
action="upgrade"
|
||||||
|
fi
|
||||||
|
|
||||||
|
case "$action" in
|
||||||
|
"1" | "install")
|
||||||
|
install
|
||||||
|
;;
|
||||||
|
"2" | "upgrade")
|
||||||
|
upgrade
|
||||||
|
;;
|
||||||
|
esac
|
@ -0,0 +1,5 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
if [ "$1" -lt "1" ]; then # Final removal
|
||||||
|
semodule -r centreon-plugins > /dev/null 2>&1 || :
|
||||||
|
fi
|
0
selinux/src/centreon-plugins.fc
Normal file
0
selinux/src/centreon-plugins.fc
Normal file
1
selinux/src/centreon-plugins.if
Normal file
1
selinux/src/centreon-plugins.if
Normal file
@ -0,0 +1 @@
|
|||||||
|
## <summary>Centreon Plugins monitoring server.</summary>
|
23
selinux/src/centreon-plugins.te
Normal file
23
selinux/src/centreon-plugins.te
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
policy_module(centreon-plugins, @VERSION@)
|
||||||
|
|
||||||
|
########################################
|
||||||
|
#
|
||||||
|
# Declarations
|
||||||
|
#
|
||||||
|
require {
|
||||||
|
type centreon_engine_t;
|
||||||
|
type centreon_broker_t;
|
||||||
|
type snmpd_t;
|
||||||
|
type fixed_disk_device_t;
|
||||||
|
}
|
||||||
|
|
||||||
|
########################################
|
||||||
|
#
|
||||||
|
# Centreon local policy
|
||||||
|
#
|
||||||
|
|
||||||
|
# centreon_centreon_central.pl
|
||||||
|
allow centreon_engine_t centreon_broker_t:fifo_file { open read getattr };
|
||||||
|
|
||||||
|
#============= snmpd_t ==============
|
||||||
|
allow snmpd_t fixed_disk_device_t:blk_file { open read getattr setattr };
|
Loading…
x
Reference in New Issue
Block a user