Size: a a a

2020 June 16

GG

George Gaál in Saltstack
далее используешь filename переменную
источник

GG

George Gaál in Saltstack
никто не мешает вместо хардкода сделать получение значения из пиллара (если он общий)
источник

GG

George Gaál in Saltstack
2. уровень абстракции сами пиллары
источник

GG

George Gaál in Saltstack
ты можешь как я тебе показал сделать пиллары )
источник

GG

George Gaál in Saltstack
третья абстракция - группы хостов. Ты же можешь раскидать отдельно грубо говоря мастера редисов и слейвов в разные кучи и полностью разнести их
источник

E

Eugeny in Saltstack
George Gaál
ты в нем можешь сделать что-то типа
{% if hostname = master %}
{% set filename = "a_master.conf"}
{% else %}
{% set filename = "c_slave.conf"}
{% endif %}
ок, спасибо еще раз
источник

GG

George Gaál in Saltstack
ты бы более полный пример своих стейтов показал )
источник

E

Eugeny in Saltstack
ну он зашкварный слегка:
# Create dir for master's data
/redis-master/data:
 file.directory:
   - user: root
   - group: root
   - mode: 755
   - makedirs: True

# Create dir for slave's data
/redis-slave/data:
 file.directory:
   - user: root
   - group: root
   - mode: 755
   - makedirs: True

# Create dir for master's config
/redis-master/conf:
 file.directory:
   - user: root
   - group: root
   - mode: 755
   - makedirs: True
   
# Put the config file for redis-master
/redis-master/conf/a_master.conf:
 file.managed:
   - name: /redis-master/conf/a_master.conf
   - source: salt://files/minion1/a_master.conf
   - user: root
   - group: root
   - mode: 0744
   - makedirs: True

# Create dir for slave's config
/redis-slave/conf:
   file.directory:
   - user: root
   - group: root
   - mode: 755
   - makedirs: True

# Put the config file for redis-slave
/redis-slave/conf/c_slave.conf:
 file.managed:
   - name: /redis-slave/conf/c_slave.conf
   - source: salt://files/minion1/c_slave.conf
   - user: root
   - group: root
   - mode: 0744
   - makedirs: True


# Create network
local_network:
 docker_network.present:
   - internal: True

# Pull hello-world
pull-image:
 docker_image.present:
   - name: hello-world

# Run hello-world
hello-world:
 docker_container.running:
   - name: hello-world
   - image: hello-world
   - networks: local_network

#run_master:
#    docker_container.running:
#        - name: redis-master
#        - image: bitnami/redis-cluster:latest
#        - binds:
#            - /redis-master/data:/bitnami/redis/data
#            - /redis-master/conf:/opt/bitnami/redis/etc/
#        - networks: local_network
#        - environment:
#            - ALLOW_ANONYMOUS_LOGIN: yes
#        - require:
#            - docker_network: local_network

#run_slave:
#  docker_container.running:
#        - name: redis-slave
#        - image: bitnami/redis-cluster:latest
#        - binds:
#            - /redis-slave/data:/bitnami/redis/data
#            - /redis-slave/conf:/opt/bitnami/redis/etc/
#        - environment:
#            - ALLOW_ANONYMOUS_LOGIN: yes
источник

GG

George Gaál in Saltstack
Eugeny
ну он зашкварный слегка:
# Create dir for master's data
/redis-master/data:
 file.directory:
   - user: root
   - group: root
   - mode: 755
   - makedirs: True

# Create dir for slave's data
/redis-slave/data:
 file.directory:
   - user: root
   - group: root
   - mode: 755
   - makedirs: True

# Create dir for master's config
/redis-master/conf:
 file.directory:
   - user: root
   - group: root
   - mode: 755
   - makedirs: True
   
# Put the config file for redis-master
/redis-master/conf/a_master.conf:
 file.managed:
   - name: /redis-master/conf/a_master.conf
   - source: salt://files/minion1/a_master.conf
   - user: root
   - group: root
   - mode: 0744
   - makedirs: True

# Create dir for slave's config
/redis-slave/conf:
   file.directory:
   - user: root
   - group: root
   - mode: 755
   - makedirs: True

# Put the config file for redis-slave
/redis-slave/conf/c_slave.conf:
 file.managed:
   - name: /redis-slave/conf/c_slave.conf
   - source: salt://files/minion1/c_slave.conf
   - user: root
   - group: root
   - mode: 0744
   - makedirs: True


# Create network
local_network:
 docker_network.present:
   - internal: True

# Pull hello-world
pull-image:
 docker_image.present:
   - name: hello-world

# Run hello-world
hello-world:
 docker_container.running:
   - name: hello-world
   - image: hello-world
   - networks: local_network

#run_master:
#    docker_container.running:
#        - name: redis-master
#        - image: bitnami/redis-cluster:latest
#        - binds:
#            - /redis-master/data:/bitnami/redis/data
#            - /redis-master/conf:/opt/bitnami/redis/etc/
#        - networks: local_network
#        - environment:
#            - ALLOW_ANONYMOUS_LOGIN: yes
#        - require:
#            - docker_network: local_network

#run_slave:
#  docker_container.running:
#        - name: redis-slave
#        - image: bitnami/redis-cluster:latest
#        - binds:
#            - /redis-slave/data:/bitnami/redis/data
#            - /redis-slave/conf:/opt/bitnami/redis/etc/
#        - environment:
#            - ALLOW_ANONYMOUS_LOGIN: yes
а у тебя разбивка по хостам какая? каждый хост и слейв и мастер?
источник

E

Eugeny in Saltstack
ага
источник

E

Eugeny in Saltstack
не совсем согласен с таким подходом, но что есть
источник

GG

George Gaál in Saltstack
я тогда не понимаю проблему
источник

E

Eugeny in Saltstack
ну это не проблема, а условие:
node1: master_a slave_c
node2: master_b slave_a
node3: master_c slave_b
источник

GG

George Gaál in Saltstack
в личку напишу ща
источник
2020 June 17

VS

Vladimir Skubriev in Saltstack
Привет. Как "заоверрайдить" чтобы описанный в формуле стейт не выполнялся. Я пробовал через пиллар указать nut.server.ups.service.enabled но безуспешно. Видимо я не доконца понимаю код. А может быть просто не оверрайдится. Начинаю разбиратся с использованием формул.
источник

VS

Vladimir Skubriev in Saltstack
источник

VS

Vladimir Skubriev in Saltstack
источник

KP

Kirill Proskurin in Saltstack
Я ничего не понял, но соль умеет делать include - extend что бы оверрайдить внешнюю логику: https://docs.saltstack.com/en/latest/ref/states/extend.html
источник

VS

Vladimir Skubriev in Saltstack
Отбой разобрался. Просто выборочно указал стейты, только `nut.client` вместо nut. Соответственно он не стал применять то, что не нужно.
источник

VS

Vladimir Skubriev in Saltstack
Kirill Proskurin
Я ничего не понял, но соль умеет делать include - extend что бы оверрайдить внешнюю логику: https://docs.saltstack.com/en/latest/ref/states/extend.html
overkill в моём случае. только начал юзать по этому масса не понятностей. да в сущности так всегда и везде
источник