标签: salt-stack

Salt-stack:在管理文件公式中替换/添加minion名称到文件

我正在使用New Relic监视我的Salt托管的EC2服务器,我试图在newrelic-sysmond confic文件中插入"hostname = minion-name",因此它们显示在New Relic的仪表板中,具有可重新调整的名称,而不是EC2默认为"ip-123-133 ......".

我使用salt-cloud旋转我的实例,然后应用以下状态(通过顶层文件)以运行New Relic sysmond:

newrelic-repo:
  pkg:
    - installed
    - require:
      - pkgrepo: <my private repo defined elsewhere, just convenient rpm storage>

newrelic-sysmond:
  pkg:
    - installed
    - require:
      - pkg: newrelic-repo
  service:
    - running
    - watch:
      - file: /etc/newrelic/nrsysmond.cfg

/etc/newrelic/nrsysmond.cfg:
  file.managed:
    - source: salt://newrelic/nrsysmond.cfg
    - user: newrelic
    - mode: 744
    - require:
      - pkg: newrelic-sysmond
Run Code Online (Sandbox Code Playgroud)

关键是:/etc/newrelic/nrsysmond.cfg托管文件是一个带有我个人帐户密钥的版本,New Relic设置所需,所以我的所有机器都是一样的.

有没有办法让我hostname=my_placeholder在那个文件中有类似的东西,然后在我的sls配置中,以便当状态被应用my_placeholder成为奴才名称?

通过states.file doc(http://docs.saltstack.com/ref/states/all/salt.states.file.html)挖掘我觉得这是可能的,但我缺少一些基础知识来计算它因为我刚刚开始用盐.主要是我认为我只需要一个关于如何引用包含minion名称的变量/ grain的方式,以及正在使用的默认值/上下文的示例.

managed amazon-ec2 newrelic salt-stack

3
推荐指数
1
解决办法
2945
查看次数

Saltstack变量

我有关于盐中变量的问题.我试图使用if语句用salt创建更复杂的状态.

工作示例:

{% set old_stable = salt['cmd.run']('cd /home/project_name && ls -t|grep 2|grep -v tar.gz|tail -n +2|head -n 1') %}
{% set time_date = salt['cmd.run']('date +%Y%m%d%H%M') %}
{% if salt['cmd.run']('ls -lt /home/project_name/ | wc -l') == 2 %}
      <STATE>
{% endif  %}
Run Code Online (Sandbox Code Playgroud)

所以,问题是:我可以将"/ home/project_name /"定义为像{{old_stable}}这样的变量放在文件顶部

在if语句中插入变量不起作用

示例(不工作)

{% set project = '/home/project_name' %}
 {% if salt['cmd.run']('ls -lt {{ project }}') | wc -l') == 2 %}
       <STATE>
 {% endif  %}
Run Code Online (Sandbox Code Playgroud)

我的代码是

{% set project = 'test_web_tool' %}

{% if salt['cmd.run']('ls -lt …
Run Code Online (Sandbox Code Playgroud)

python variables salt-stack

3
推荐指数
1
解决办法
6821
查看次数

如何将盐状态写入 pip install 要求文件?

找不到这个写的。我想:

pip.install:
  - requirements: /path/to/requirements.txt
Run Code Online (Sandbox Code Playgroud)

但我收到错误

ID pip.install in SLS python.python-pip is not a dictionary
Run Code Online (Sandbox Code Playgroud)

许多其他方法包括 virtualenvs,但我不想使用 virtualenv 来执行此操作,因为它用于虚拟机,所以没有意义。

python yaml salt-stack

3
推荐指数
1
解决办法
1355
查看次数

如何在salt中将字典作为函数参数传递

我需要使用

pip.installed
Run Code Online (Sandbox Code Playgroud)

在盐中起作用并传递参数

env_vars
Run Code Online (Sandbox Code Playgroud)

具有多个参数,这些参数最终应呈现为python字典。可以有一个参数,并且该参数期望的是字典以外类型的参数,那么我可以像这样传递它:

pip.installed:
  - env_vars: my_var
Run Code Online (Sandbox Code Playgroud)

但是我需要通过一个命令,我不确定该怎么做。

应该是这样的构造:

pip.installed:
  - env_vars:
    - my_var1: var_value
    - my_var2: var_value2
Run Code Online (Sandbox Code Playgroud)

我应该如何检查我的配置是否真正呈现为正确的形式?

dictionary yaml salt-stack

3
推荐指数
1
解决办法
920
查看次数

Salt Python API在minion中运行状态

我可以使用python api运行我的状态吗?

salt -N'test_server'state.sls django这将在我的测试小兵中安装django

我可以在python脚本中做这样的事情吗?

import salt.client as client
c = client.LocalClient()
c.cmd('test_server','django',expr_form='nodegroup',pillar={'status':'TEST'})
Run Code Online (Sandbox Code Playgroud)

python salt-stack

3
推荐指数
1
解决办法
2331
查看次数

如何在master上将目录从salt minion复制到master?

假设我在盐主人身上my-minion,假设我知道特定盐奴隶的名字,我怎样才能将特定目录/my-directory从salt-minion 复制到主人?

salt-stack devops

3
推荐指数
1
解决办法
4208
查看次数

如何在Saltstack中使用自动完成功能

我想在saltstack中使用bash自动完成功能。

salt '*' test.p <tab>应该完成这个词并且做到salt '*' test.ping

谷歌搜索之后,我得到了以下链接: salt.bashCLI完成

但是,我不知道如何使用它。自动补全功能默认情况下不起作用。请提供任何逐步指南以将其激活。

autocomplete salt-stack

3
推荐指数
1
解决办法
1022
查看次数

等待文件出现的Saltstack

是否可以在Saltsack中执行相同的操作,但是通过嵌入式功能(没有PowerShell解决方法)?

installation:
cmd.run:
- name: ./installation_script

wait for installation:
cmd.run:
 - name: powershell -command "Start-Sleep 10"
 - unless: powershell -command "Test-Path @('/path/to/file/to/appear')"
Run Code Online (Sandbox Code Playgroud)

powershell configurationmanager salt-stack

3
推荐指数
1
解决办法
334
查看次数

file.managed salt状态中的默认值和上下文选项之间有什么区别?

状态file.managed 具有 defaultscontext用于模板渲染的选项。两者都提供模板变量的上下文。它们之间有什么区别?

salt-stack

3
推荐指数
1
解决办法
455
查看次数

Salt-Stack/Vagrant:ubuntu 12.04上的php 5.5

通过使用下面的文件,我只能得到'PHP 5.3.10-1ubuntu3.8'.我至少需要PHP 5.4,并且非常喜欢php 5.5.

谁能帮我吗?我一直在寻找几个小时,似乎这不是一个被谈论很多的话题.

提前致谢.

php.sls

php5-fpm:
  pkg:
    - installed
  service.running:
    - enable: True
    - watch:
      - file: /etc/php5/fpm/pool.d/www.conf
    - require:
      - pkg: php5-fpm
      - pkg: php5-mcrypt
      - pkg: php5-curl
      - pkg: php5-mysql
      - pkg: php5-cli
  file.managed:
    - name: /etc/php5/fpm/pool.d/www.conf
    - source: salt://packages/php/www.conf
    - user: root
    - group: root
    - mode: '0640'
    - require:
      - pkg: php5-fpm
Run Code Online (Sandbox Code Playgroud)

php configuration vagrant salt-stack

2
推荐指数
1
解决办法
1460
查看次数