소스 검색

add possibility to setup salt-proxy, then repos and then call salt-minion state for pkg dependencies

Change-Id: Idb5037fb9c7cb032a8ba81f85a6cb902b3d693a7
pull/73/head
Jiri Broulik 6 년 전
부모
커밋
9dc3146477
1개의 변경된 파일88개의 추가작업 그리고 0개의 파일을 삭제
  1. +88
    -0
      salt/minion/base.sls

+ 88
- 0
salt/minion/base.sls 파일 보기

@@ -0,0 +1,88 @@
{#- This state can be called explicitly. Do not include this file in minion.init #}
{%- from "salt/map.jinja" import minion,renderer with context %}
{%- if minion.enabled %}

{%- if minion.source.get('engine', 'pkg') == 'pkg' %}

salt_minion_packages:
pkg.installed:
- names: {{ minion.pkgs }}
{%- if minion.source.version is defined %}
- version: {{ minion.source.version }}
{%- endif %}

salt_minion_dependency_packages:
pkg.installed:
- pkgs: {{ minion.dependency_pkgs }}

{%- elif minion.source.get('engine', 'pkg') == 'pip' %}

salt_minion_packages:
pip.installed:
- name: salt{% if minion.source.version is defined %}=={{ minion.source.version }}{% endif %}

salt_minion_dependency_packages:
pkg.installed:
- pkgs: {{ minion.dependency_pkgs_pip }}

{%- endif %}

/etc/salt/minion.d/minion.conf:
file.managed:
- source: salt://salt/files/minion.conf
- user: root
- group: root
- template: jinja
- require:
- {{ minion.install_state }}

{%- if renderer | length > 0 %}

/etc/salt/minion.d/_renderer.conf:
file.managed:
- source: salt://salt/files/_renderer.conf
- user: root
- template: jinja
- require:
- {{ minion.install_state }}
- watch_in:
- service: salt_minion_service

{%- endif %}

salt_minion_service:
service.running:
- name: {{ minion.service }}
- enable: true
- require:
- pkg: salt_minion_packages
- pkg: salt_minion_dependency_packages
{%- if grains.get('noservices') %}
- onlyif: /bin/false
{%- endif %}

{#- Restart salt-minion if needed but after all states are executed #}
salt_minion_service_restart:
cmd.run:
- name: 'while true; do salt-call saltutil.running|grep fun: && continue; salt-call --local service.restart {{ minion.service }}; break; done'
- shell: /bin/bash
- bg: true
- order: last
- onchanges:
- file: /etc/salt/minion.d/minion.conf
{%- if grains.get('noservices') %}
- onlyif: /bin/false
{%- endif %}
- require:
- service: salt_minion_service

salt_minion_sync_all:
module.run:
- name: 'saltutil.sync_all'
- onchanges:
- service: salt_minion_service
- require:
- pkg: salt_minion_packages
- pkg: salt_minion_dependency_packages

{%- endif %}

Loading…
취소
저장