* Automated using https://github.com/myii/ssf-formula/pull/302pull/58/head
parent
406dbbb4e5
commit
650cfaddf0
@ -0,0 +1,13 @@ |
||||
# yamllint disable rule:indentation rule:line-length |
||||
# {{ grains.get("osfinger", grains.os) }} |
||||
--- |
||||
{#- use salt.slsutil.serialize to avoid encoding errors on some platforms #} |
||||
{{ salt["slsutil.serialize"]( |
||||
"yaml", |
||||
map, |
||||
default_flow_style=False, |
||||
allow_unicode=True, |
||||
) |
||||
| regex_replace("^\s+'$", "'", multiline=True) |
||||
| trim |
||||
}} |
@ -0,0 +1,22 @@ |
||||
# -*- coding: utf-8 -*- |
||||
# vim: ft=sls |
||||
--- |
||||
{#- Get the `tplroot` from `tpldir` #} |
||||
{%- set tplroot = tpldir.split("/")[0] %} |
||||
{%- from tplroot ~ "/map.jinja" import logrotate with context %} |
||||
|
||||
{%- set _mapdata = { |
||||
"values": logrotate, |
||||
} %} |
||||
{%- do salt["log.debug"]("### MAP.JINJA DUMP ###\n" ~ _mapdata | yaml(False)) %} |
||||
|
||||
{%- set output_dir = "/temp" if grains.os_family == "Windows" else "/tmp" %} |
||||
{%- set output_file = output_dir ~ "/salt_mapdata_dump.yaml" %} |
||||
|
||||
{{ tplroot }}-mapdata-dump: |
||||
file.managed: |
||||
- name: {{ output_file }} |
||||
- source: salt://{{ tplroot }}/_mapdata/_mapdata.jinja |
||||
- template: jinja |
||||
- context: |
||||
map: {{ _mapdata | yaml }} |
@ -0,0 +1,22 @@ |
||||
# InSpec Profile: `share` |
||||
|
||||
This shows the implementation of the `share` InSpec [profile](https://github.com/inspec/inspec/blob/master/docs/profiles.md). |
||||
|
||||
Its goal is to share the libraries between all profiles. |
||||
|
||||
## Libraries |
||||
|
||||
### `system` |
||||
|
||||
The `system` library provides easy access to system dependent information: |
||||
|
||||
- `system.platform`: based on `inspec.platform`, modify to values that are more consistent from a SaltStack perspective |
||||
- `system.platform[:family]` provide a family name for Arch and Gentoo |
||||
- `system.platform[:name]` append `linux` to both `amazon` and `oracle`; ensure Windows platforms are resolved as simply `windows` |
||||
- `system.platform[:release]` tweak Arch, Amazon Linux, Gentoo, openSUSE and Windows: |
||||
- `Arch` is always `base-latest` |
||||
- `Amazon Linux` release `2018` is resolved as `1` |
||||
- `Gentoo` release is trimmed to its major version number and then the init system is appended (i.e. `sysv` or `sysd`) |
||||
- `openSUSE` is resolved as `tumbleweed` if the `platform[:release]` is in date format |
||||
- `Windows` uses the widely-used release number (e.g. `8.1` or `2019-server`) in place of the actual system release version |
||||
- `system.platform[:finger]` is the concatenation of the name and the major release number (except for Ubuntu, which gives `ubuntu-20.04` for example) |
@ -0,0 +1,22 @@ |
||||
# -*- coding: utf-8 -*- |
||||
# vim: ft=yaml |
||||
--- |
||||
name: share |
||||
title: InSpec shared resources |
||||
maintainer: SaltStack Formulas |
||||
license: Apache-2.0 |
||||
summary: shared resources |
||||
supports: |
||||
- platform-name: debian |
||||
- platform-name: ubuntu |
||||
- platform-name: centos |
||||
- platform-name: fedora |
||||
- platform-name: opensuse |
||||
- platform-name: suse |
||||
- platform-name: freebsd |
||||
- platform-name: openbsd |
||||
- platform-name: amazon |
||||
- platform-name: oracle |
||||
- platform-name: arch |
||||
- platform-name: gentoo |
||||
- platform: windows |
@ -0,0 +1,90 @@ |
||||
# frozen_string_literal: true |
||||
|
||||
# system.rb -- InSpec resources for system values |
||||
# Author: Daniel Dehennin <daniel.dehennin@ac-dijon.fr> |
||||
# Copyright (C) 2020 Daniel Dehennin <daniel.dehennin@ac-dijon.fr> |
||||
|
||||
class SystemResource < Inspec.resource(1) |
||||
name 'system' |
||||
|
||||
attr_reader :platform |
||||
|
||||
def initialize |
||||
super |
||||
@platform = build_platform |
||||
end |
||||
|
||||
private |
||||
|
||||
def build_platform |
||||
{ |
||||
family: build_platform_family, |
||||
name: build_platform_name, |
||||
release: build_platform_release, |
||||
finger: build_platform_finger |
||||
} |
||||
end |
||||
|
||||
def build_platform_family |
||||
case inspec.platform[:name] |
||||
when 'arch', 'gentoo' |
||||
inspec.platform[:name] |
||||
else |
||||
inspec.platform[:family] |
||||
end |
||||
end |
||||
|
||||
def build_platform_name |
||||
case inspec.platform[:name] |
||||
when 'amazon', 'oracle' |
||||
"#{inspec.platform[:name]}linux" |
||||
when /^windows_/ |
||||
inspec.platform[:family] |
||||
else |
||||
inspec.platform[:name] |
||||
end |
||||
end |
||||
|
||||
# rubocop:disable Metrics/MethodLength,Metrics/AbcSize,Metrics/CyclomaticComplexity |
||||
def build_platform_release |
||||
case inspec.platform[:name] |
||||
when 'amazon' |
||||
# `2018` relase is named `1` in kitchen.yaml |
||||
inspec.platform[:release].gsub(/2018.*/, '1') |
||||
when 'arch' |
||||
'base-latest' |
||||
when 'gentoo' |
||||
"#{inspec.platform[:release].split('.')[0]}-#{derive_gentoo_init_system}" |
||||
when 'opensuse' |
||||
# rubocop:disable Style/NumericLiterals,Layout/LineLength |
||||
inspec.platform[:release].to_i > 20210101 ? 'tumbleweed' : inspec.platform[:release] |
||||
# rubocop:enable Style/NumericLiterals,Layout/LineLength |
||||
when 'windows_8.1_pro' |
||||
'8.1' |
||||
when 'windows_server_2019_datacenter' |
||||
'2019-server' |
||||
when 'windows_server_2016_datacenter' |
||||
'2016-server' |
||||
else |
||||
inspec.platform[:release] |
||||
end |
||||
end |
||||
# rubocop:enable Metrics/MethodLength,Metrics/AbcSize,Metrics/CyclomaticComplexity |
||||
|
||||
def derive_gentoo_init_system |
||||
inspec.command('systemctl').exist? ? 'sysd' : 'sysv' |
||||
end |
||||
|
||||
def build_platform_finger |
||||
"#{build_platform_name}-#{build_finger_release}" |
||||
end |
||||
|
||||
def build_finger_release |
||||
case inspec.platform[:name] |
||||
when 'ubuntu' |
||||
build_platform_release.split('.').slice(0, 2).join('.') |
||||
else |
||||
build_platform_release.split('.')[0] |
||||
end |
||||
end |
||||
end |
Loading…
Reference in new issue