Не все состояния из top.sls будут применяться в Saltstack - PullRequest
0 голосов
/ 27 апреля 2020

У меня проблема с моим Saltstack и его top.sls. К сожалению, не все мои состояния из top.sls будут применяться миньоном.

Вот мой top.sls

  # master top.sls
base:
  'G@salt_control:true':
    - automount
    - chrony
    - columbus
    - db_db2
    - db_hana_tdi
    - db_maxdb
    - db_ora
    - db_ora-nonsap
    - db_sybase
    - dnsmasq
    - facts
    - grub
    - iptables_rule
    - lama_sync
    - ldap_hosts
    - ldap_services
    - logrotate
    - lvm
    - nsswitch
    - ntp
    - company_base
    - company_profile
    - pam_krb5
    - pam_ldap
    - postfix
    - rear    
    - resolv
    - rsyslog
    - salt-minion
    - sap_cc
    - sap_ci
    - sap_di
    - sap_trx
    - sap_wd
    - ssh
    - sssd
    - systemd
    - sysstat    
    - tsm    
    - userdef    
    - zypper    
  'G@cpuarch:ppc64le':
    - lpar2rrde

И если я запускаю highstate на серверах, не все состояния будут применяться. Я могу управлять любым государством самостоятельно без проблем. Например, состояние "company_base" не будет применено при запуске highstate. Если я применю его один, проблем не будет.

Состояние также будет отображаться при запуске «salt-call state.show_top».

Вот моя конфигурация Salt master:

top_file_merging_strategy: same

fileserver_backend:
  - git
  - roots

state_top_saltenv: base
gitfs_remotes:
  - git@gitserver:team/salt.git:
    - saltenv:
      - base:
        - ref: master
      - dev:
        - ref: development

Зерна (/ etc / salt / grains) моего миньона:

salt_control: true

Вот содержимое базы компании:

{% from "company_base/map.jinja" import company_base with context %}

##
# add companyrpm signing key
company_rpm_signing_key:
  cmd.run:
    - name: rpm --import http://repo.company.lan/pub/RPM-GPG-KEY-COMPANY
    - unless: "rpm -q gpg-pubkey | grep -q gpg-pubkey-XXXXX-XXXXXX"

##
#  install company packages
company.scripts:
  pkg.installed:
    - name: company-dep-scripts
    - refresh: true

##
# install uc4
uc4_packages:
  pkg.installed:  
    - pkgs:
      - uc4

##
#  install default packages
default_base_packages:
  pkg.installed:  
    - pkgs:
{% set pkg_list = company_base.pkgs.get(grains.cpuarch) %}
{% for pkg in pkg_list %}
      - {{ pkg }}
{% endfor %}


getroot_sudo:
  file.managed:
    - name: /etc/sudoers.d/01-admin
    - contents: 
      - "# salt managed {{ sls }}"
      - "%basis   ALL=NOPASSWD:/bin/su - admin"
      - "admin ALL=(ALL) NOPASSWD:ALL"
    - user: root
    - group: root
    - mode: 440

Карта дзиндзя:

{% set company_base = salt['grains.filter_by']({
    'Suse': {
        'pkgs': {
          'x86_64': [
            '"hostinfo"',
            '"tcpdump"',
            '"uc4"',
            '"getroot"',
            '"libX11-6-32bit"',
            '"company-dep-pa-001"',
            '"pmg_scripts"',
            '"company-dep-scripts"',
            '"pam_ssh"',
            '"psmisc"',
            '"telnet"',
            '"tcsh"',
            '"libgcc_s1"',
            '"libatomic1"',
          ],
          'ppc64le': [
            '"hostinfo"',
            '"tcpdump"',
            '"uc4"',
            '"getroot"',
            '"company-dep-pa-001"',
            '"pmg_scripts"',
            '"company-dep-scripts"',
            '"psmisc"',
            '"telnet"',
            '"tcsh"',
            '"libgcc_s1"',
            '"libatomic1"',
          ],
        },
    },
} ) %}

Есть идеи?

...