Python 是否可以使用';如果';在salt中安装包时的语句
我有一个Python 是否可以使用';如果';在salt中安装包时的语句,python,salt-stack,Python,Salt Stack,我有一个packages.sls文件,其中包含部署期间要安装的软件包列表 是否可以添加if语句,并根据仆从的姓名决定是否安装软件包 以下是一个例子: zabbix-agent-removed: pkg.purged: - name: zabbix-agent - zabbix-agent: '<4.0.0' - ignore_epoch: True # add if not minion == XX, install the following one: za
packages.sls
文件,其中包含部署期间要安装的软件包列表
是否可以添加if
语句,并根据仆从的姓名决定是否安装软件包
以下是一个例子:
zabbix-agent-removed:
pkg.purged:
- name: zabbix-agent
- zabbix-agent: '<4.0.0'
- ignore_epoch: True
# add if not minion == XX, install the following one:
zabbix-agent-installed:
pkg.installed:
- name: zabbix-agent
- zabbix-agent: '>=4.0.0'
- ignore_epoch: True
- require:
- pkgrepo: zabbix-agent-repo-added
# end if here
scikit-learn:
pip.installed:
- name: scikit-learn == 0.19.1
- require:
- pkg: python-pip
zabbix代理已删除:
包装:
-姓名:zabbix代理
-zabbix代理:'=4.0.0'
-忽略时代:正确
-要求:
-pkgrepo:zabbix代理回购已添加
#如果在这里结束
scikit学习:
已安装的pip.com:
-名称:scikit学习==0.19.1
-要求:
-pkg:python-pip
根据文档“是”:他们为您提供了一个如何操作的示例:
apache:
pkg.installed:
{% if grains['os'] == 'RedHat' %}
- name: httpd
{% elif grains['os'] == 'Ubuntu' %}
- name: apache2
{% endif %}
我建议您将“处理”(安装软件包)和“数据”(要安装的软件包)分开。 在盐中,第一个是状态,第二个是柱 安装软件包的状态可以简单到:
install_packages:
pkg.installed:
- pkgs: {{ salt['pillar.get']('packages', []) }}
然后您只需根据颗粒['os']
将支柱设置为不同。支柱具有类似于州的top.sls
目标系统。
您可以在此处或此处找到关于支柱的文档,以及关于目标的文档
您还可以决定使用社区维护的saltstack公式,该社区已经提供了此功能谢谢。我在搜索时看到了那个页面,但是您知道是否可以添加“if”语句来包含所有这些块?所以如果某个变量等于某个输入,我不会安装任何东西?