2016-03-07 10 views
7

W jaki sposób możemy utworzyć strukturę drzewa stanu soli, aby móc uruchomić highstate dla jednego virtualenv z dużej liczby działających na hoście?Sól: zarządzaj ponad 100 wirtualnymi urządzeniami na jednym hoście

Prowadzimy virtualenvs dla rozwoju i produkcji, przy użyciu tkaniny. Chcemy przejść z tkaniny na sól. Wszystko działa dobrze, z tym wyjątkiem, że highstate trwa zbyt długo. Mamy 100+ virtualenvs na jednym hoście, a caling highstate zaktualizuje 100+ virtualenvs.

+0

można powiedzieć, jak długo to trwa? – dahrens

+0

@dahrens przepraszam, nie mam żadnych numerów w tej chwili. Ale prędkość to tylko jeden problem. Drugi to: adresowalność. Chcę móc zaktualizować jeden konkretny virtualenv bez dotykania innych virtualenvs. – guettli

Odpowiedz

6

salt '*' state.highstate

zawsze stosuje wszystkie stany do minion. To zależy od twoich stanów, dlaczego trwa to dość długo, dopóki nie powróci wysoki stan.

Istnieje możliwość zorganizowania wdrożenia za pomocą oddzielnych stanów dla każdego venv. Poszczególne państwa mogą być stosowane tak:

salt '*' state.sls venv1

Proste drzewo sól może wyglądać następująco.

. 
    +-- salt 
    | +-- _prereq.sls 
    | +-- venv1.sls 
    | +-- venv2.sls 
    | +-- top.sls 

Jeśli potrzebujesz rzeczy do zrobienia, jako warunek wstępny dla każdego venv w ten sam sposób można użyć coś takiego:

_prereq.sls

install_something: 
    pkg.installed: 
    pkgs: ['foo', 'bar'] 

venv1.sls

include: 
    - _prereq 

myvenv_state: 
    virtualenv.managed: 
    - system_site_packages: False 
    - requirements: salt://requirements.txt 
    - require: 
     - sls: _prereq 

Wolę być w stanie wyolbrzymić moich sługusów, nie myśląc o tym, więc staram się unikać stanów adresowalnych. Ale może pasować do twoich potrzeb.

kupili także rzucić okiem na salt.states.virtualenv

+0

Domyślam się, że 'salt '*' state.sls venv1' zamiast highstate powinno działać. Jeśli venv1 i venv2 mają wspólny zestaw wymagań, jak to napisać (bez duplikacji kodu)? – guettli

+0

możesz utworzyć inny stan z wymaganiami i uwzględnić ten stan w każdym venv, jak [wyjaśnione w solnej dokumentacji] (https://docs.saltstack.com/en/latest/ref/states/requisites.html#require-an- whole-sls-file) – dahrens

+0

pamiętaj, że chcesz być w stanie odpowiednio wyszkolić swoich sług. jak długo to trwa, aby je osiągnąć? – dahrens

Powiązane problemy