标签: salt-stack

使用Salt的LocalClient,如何在test.ping命令中实现相同的结果或指定'-v'arg?

使用CLI,我可以输入以下内容:

盐'*'test.ping -v

结果输出如下:

minion_A:
True
minion_B:
True
minion_C:
True
minion_D:
Minion没有回来

如何使用LocalClient?获得相同的结果?这就是我目前正在尝试的东西,只返回具有以下响应的小兵True:

self.localClient.cmd('*', 'test.ping', ['-v'])  
Run Code Online (Sandbox Code Playgroud)

更新:
根据指示,有可能是一个错误arg在命令中的元组,我也试过如下:

args = ('-v',)
return self.localClient.cmd('*', 'test.ping', arg=args)
Run Code Online (Sandbox Code Playgroud)

......可悲的是,仍然没有成功

python salt-stack

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

Saltstack:我可以使用file.manage来源另一个盐状态创建的文件吗?

noob saltstack问题

我有一个在salt状态(war文件)中创建的文件,我想在更改时将该文件复制到服务器的deploy目录.我认为file.managed这是正确的方法,所以类似于:

/var/lib/tomcat7/webapps/app.war:
  file.managed:
    - source: /home/user/project/build/release/app.war
    - user: tomcat7
    - group: tomcat7
Run Code Online (Sandbox Code Playgroud)

该文件是通过一个单独的状态构建的,该状态似乎正常运行.

当salt exec时state.highstate,输出为"无法确定源文件的上游哈希值/home/user/project/build/release/app.war"

有一个更好的方法吗?在一个状态下构建文件(因此它是本地的),然后在构建的文件更改时更新目标?谢谢你的建议.

salt-stack

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

Saltstack支柱 - 使用子目录

我需要将我的支柱组织到子目录中.

/srv/pillar/
??? app1
?   ??? env1
?       ??? conf.sls
??? data.sls
??? top.sls
Run Code Online (Sandbox Code Playgroud)

我把它放在top.sls中:

base:
  '*':
    - data
    - app1/env1/conf
Run Code Online (Sandbox Code Playgroud)

当我请求data.sls for variable时info,它可以工作:

salt '*' pillar.get info
local:
    some data
Run Code Online (Sandbox Code Playgroud)

但是当我请求conf.sls变量时info,没有任何作用:

salt '*' pillar.get app1.env1.info 
Run Code Online (Sandbox Code Playgroud)

没有显示!

我已经执行了:

saltutil.refresh_pillar
Run Code Online (Sandbox Code Playgroud)

并重新启动salt进程.

我该怎么做才能让盐柱识别子目录?

salt-stack

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

SLS 中的 ID 不是字典

我正在尝试使用 SaltStack 配置我的 Vagrant 驱动的 VM。我想安装和配置 PostgreSQL。这是我的状态:

postgresql-installation:
    # adding repo, installing package, starting service here

postgresql-database-setup:
    - postgres_user.present:
        - name: {{ pillar['pg_db_user'] }}
        - password: {{ pillar['pg_db_password'] }}
        - require:
            - service: postgresql
    - postgres_database.present:
        - name: {{ pillar['pg_db_name'] }}
        - encoding: {{ pillar['pg_db_encoding'] }}
        - lc_ctype: {{ pillar['pg_db_ctype'] }}
        - lc_collate: {{ pillar['pg_db_collate'] }}
        - template: {{ pillar['pg_db_template'] }}
        - owner: {{ pillar['pg_db_user'] }}
        - require:
            - postgres_user: postgresql-database-setup
Run Code Online (Sandbox Code Playgroud)

postgres-installation工作完美,但postgres-database-setup让我头疼。运行配置时,Salt 会抛出此错误:

Data failed to compile: …
Run Code Online (Sandbox Code Playgroud)

postgresql provisioning salt-stack

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

有没有办法在没有仆从的情况下运行“sys.list_modules”命令?

就文档而言,如果想查询可用的执行模块,应使用以下命令:

salt '<minion_name>' sys.list_modules
Run Code Online (Sandbox Code Playgroud)

我的问题是, - 是否可以在没有仆从的情况下运行上述内容?
(例如salt sys.list_modules,它不是更干净吗?)

salt-stack

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

从Mac OSX中删除Saltstack

我不记得我是如何在我的mac上安装saltstack的,所以我尝试尽可能地卸载它.我试过brew uninstall saltstack,pip uninstall salt.我试图看看是否salt -h有任何要说的卸载它,但它没有用.

更新一些系统输出 ? pip list | grep salt ? whereis salt-call ? which salt-call /opt/salt/bin/salt-call ? ls -l /opt/salt total 0 drwxr-xr-x 45 root wheel 1.5K 24 Aug 13:07 bin/ drwxr-xr-x 8 root wheel 272B 24 Aug 13:07 include/ drwxr-xr-x 14 root wheel 476B 24 Aug 13:07 lib/ drwxr-xr-x 8 root wheel 272B 24 Aug 13:07 openssl/ drwxr-xr-x 3 root wheel 102B 24 Aug 13:07 share/

我猜我从这个链接 …

macos salt-stack

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

使用 python api 的 salt-run 命令

我正在寻找一种方法来找到如何使用 python api 调用 salt-run 以在 salt master 中列出。试图寻找方法但没有帮助!我想使用 python api 运行这个命令salt-run queue.insert myqueue myitem

python salt-stack

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

SaltStack - 更改文件权限

我需要使用SaltStack在Linux中更改文件权限.

对于目录我可以使用file.directory函数,例如:

file.directory:
  - user: root
  - group: root
  - mode: 400
Run Code Online (Sandbox Code Playgroud)

但是我应该将什么用于文件?

我可以用:

  file.managed:
    - user: root
    - group: root
    - mode: 444
Run Code Online (Sandbox Code Playgroud)

它有效,但我有一条警告信息:

[警告]文件状态:/boot/grub/grub.cfg - 既没有定义'source'也没有'contents','contents_pillar'和'contents_grains',但'replace'被设置为'True'.由于没有替换文件的源,'replace'已设置为'False'以避免不必要地读取文件.

它需要一个source指令,但我不想将文件下载到minion,我只需要更改文件权限.

file.exists功能不具备user,groupmode指令.

我有什么选择?

linux salt-stack

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

在盐状态中使用 mine.get 进行解释

有人可以给我一个白痴解释以下是如何工作的:

{% for server, addrs in salt['mine.get']('roles:web', 'network.ip_addrs', expr_form='grain') | dictsort() %}
server {{ server }} {{ addrs[0] }}:80 check
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

支柱文件如下所示:

mine_functions:
  network.ip_addrs: [eth0]
Run Code Online (Sandbox Code Playgroud)

盐分配给前两个值是什么,server以及addrs?你会如何在上面使用多个地雷选项?即,如果您的 pillar 文件有一个额外的 mine 功能,如下所示:

mine_functions:
     network.ip_addrs: [eth0]
      role:
        - mine_function: grains.get
        - role
Run Code Online (Sandbox Code Playgroud)

那么如何访问第一个代码片段中的角色函数?

希望这是有道理的

salt-stack

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

使用 salt-call 应用单个状态文件

有没有办法应用单个状态文件?我很想在本地做一个salt-call并应用一个文件,相当于puppet-apply /tmp/some-manifest.pp

我非常想将它保存在单个文件中,而不是更改盐根或路径等。

salt-stack

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

标签 统计

salt-stack ×10

python ×2

linux ×1

macos ×1

postgresql ×1

provisioning ×1