Как использовать соляную среду как наследование классов - PullRequest
0 голосов
/ 17 апреля 2019

Я знаю, что с помощью соляной среды и конфигурации master / minion мы можем сделать практически все.

Мне нравится, что minion принимает конфигурацию из этой среды:

  • общий
  • прод
  • 1010 * ОК *
  • DEV

каждый миньон привязан к переменной env миньона, как minenv положить где-нибудь зерно или столб (minenv - моя переменная)

если minionA привязан к minenv = 'qa' и привязан к websrv.sls в общих , prod , qa средах с помощью top.sls, websrv.sls в common должны быть переопределены из websrv.sls в prod , и это должно быть переопределено из websrv.sls в qa и websrv.sls в dev должны игнорироваться.

    #minionA(minenv='qa')  

    /srv/salt/common/top.sls 
    common:  
      minionA:  
        - websrv
        - db
        - antivirus

    /srv/salt/prod/top.sls  
    prod:  
      minionA:  
        - websrv
        - db

    /srv/salt/qa/top.sls   
    qa:  
      minionA:  
        - websrv

    /srv/salt/dev/top.sls  
    dev:  
      minionA:  
        - websrv
        - mail

Я бы хотел иметь поведение, подобное наследованию классов.

, поэтому, если есть конфигурация в общей среде, которая отсутствует в среде prod , ее необходимо применить, и если такая же конфигурация присутствует в prod конфигурация prod должна переопределять конфигурацию common .

Таким образом, в приведенном выше примере выполнение salt '*' state.apply
на миньоне А выполнит:


    /srv/salt/qa/websrv.sls  
    /srv/salt/prod/db.sls  
    /srv/salt/common/antivirus.sls  


        |------common-----------------------------|
        |                                         |
        |   |---prod---------------------------|  |
        |   |  |---qa----------------------|   |  |
        |   |  |      |---dev-------|      |   |  |
        |   |  |      |    ...      |      |   |  |
        |   |  |      |             |      |   |  |
        |   |  |      |-------------|      |   |  |
        |   |  |---------------------------|   |  |
        |   |----------------------------------|  |
        |-----------------------------------------|  

как это сделать?
все еще возможно?
полезно?

С наилучшими пожеланиями, Leonardo

...