标签: salt-stack

有没有办法只显示更改和错误

我有相当广泛的盐配置,我希望能够看到发生了什么变化.如果我只是运行,salt '*' state.highstate我得到了整个列表,其中包含存在且未更改的内容 - 例如3到4个日志屏幕.但我真的很想看到上一份工作中发生的变化.

它不必为盐呼叫工作,它也可以使用salt-run jobs.lookup_jid.

salt-stack

47
推荐指数
5
解决办法
2万
查看次数

从另一个脚本调用一个Bash脚本,用引号和空格传递它的参数

我在Linux上制作了两个测试bash脚本,以解决问题.

TestScript1看起来像:
    echo "TestScript1 Arguments:"
    echo "$1"
    echo "$2"
    echo "$#"
    ./testscript2 $1 $2
Run Code Online (Sandbox Code Playgroud) TestScript2看起来像:
    echo "TestScript2 Arguments received from TestScript1:"
    echo "$1"
    echo "$2"
    echo "$#"
Run Code Online (Sandbox Code Playgroud) 当我以下列方式执行testscript1时:
    ./testscript1 "Firstname Lastname" testmail@domain.com  
Run Code Online (Sandbox Code Playgroud) 期望的输出应该是:
    TestScript1 Arguments:  
    Firstname Lastname  
    testmail@domain.com  
    2
    TestScript2 Arguments received from TestScript1:  
    Firstname Lastname  
    testmail@domain.com  
    2  
Run Code Online (Sandbox Code Playgroud) 但实际输出是:
    TestScript1 Arguments:  
    Firstname Lastname  
    testmail@domain.com  
    2
    TestScript2 Arguments received from TestScript1:  
    Firstname
    Lastname      
    3  
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?我想获得所需的输出而不是实际的输出.

bash shell double-quotes salt-stack

45
推荐指数
2
解决办法
11万
查看次数

为什么这个提交将RSA公共指数设置为1有问题?

我在SaltStack的Hacker News上看到了这个提交,但是我不明白它的确是什么或为什么原始版本是加密错误.(我也不太了解密码学的细节如何工作.)

-    gen = RSA.gen_key(keysize, 1, callback=lambda x, y, z: None)
+    gen = RSA.gen_key(keysize, 65537, callback=lambda x, y, z: None)
Run Code Online (Sandbox Code Playgroud)

有人可以详细说明为什么选择"1"被取代了吗?为什么"65537"更好?

security cryptography salt-stack

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

盐堆:谷物与支柱

盐系统中有谷物和支柱.我理解如何分配定制谷物,但何时考虑使用支柱会更好?

configuration-management salt-stack

32
推荐指数
3
解决办法
2万
查看次数

删除Jinja2变量定义留下的空行

使用Jinja2为Saltstack编写模板文件时,我经常在文件的开头定义一些变量.例如:

{% set ip = grains['ip4_interfaces']['eth1'][0] %}
{% set domain = pillar['company_domain'] %}
{% set version = pillar['site_version'] %}
{% set site_url = 'www.' + domain %}

[...]
Run Code Online (Sandbox Code Playgroud)

一切正常,但是当打开生成的文件时,我得到一个空行的块,其中包含jinja代码.

难道我做错了什么 ?如果没有,在使用模板时有没有办法摆脱那些空行?

jinja2 salt-stack

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

Salt Stack:在SLS中使用执行模块

至于我在Salt文档中看到的(例如这里),支持的模块有两种主要类型:状态模块执行模块(我知道还有渲染器,返回器等).大多数SLS文件示例包含仅与状态模块相关的语句(在salt.state命名空间下),而对于执行模块,仅显示命令行示例.例如,我们有两个名为"service"的模块:salt.states.service和salt.modules.service.现在我在SLS文件中使用执行模块时遇到问题,似乎它们根本不可用,或者我错过了让它们可用的东西.我的问题是:是否可以在SLS文件中使用执行模块,以及如何使用salt.modules.service.restart函数在Ubuntu机器上重新启动服务?此外,我没有明确区分这些模块类型.

我的服务名称是selenium-node,我尝试了几种组合,但都失败了:

# First attempt:
selenium-node:
  service.restart

# Another one:
service:
  - restart
  - name: selenium-node

# Or even:
selenium-node:
  service:
    - restart
Run Code Online (Sandbox Code Playgroud)

在使用git状态和执行模块时,我遇到了同样的问题.但是,当我在minion上运行以下命令时(如文档中所示),它成功:

$ sudo salt-call service.restart selenium-node
Run Code Online (Sandbox Code Playgroud)

python service salt-stack

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

SaltStack:在watch语句中,如何指定应该监视所有文件的目录?

我想在/etc/nginx/conf.d创建或修改目录中的任何文件时重新启动nginx服务.

该目录中有许多文件,而不是指定特定文件,我想观察所有更改.

我试过这个:

nginx:
  pkg.installed:
    - name: nginx
  service:
    - running
    - enable: True
    - restart: True
    - watch:
      - file: /etc/nginx/nginx.conf
      - file: /etc/nginx/conf.d
      - pkg: nginx
Run Code Online (Sandbox Code Playgroud)

但这条线- file: /etc/nginx/conf.d并没有做我想要的.

这是错误:

      ID: nginx
Function: service.running
  Result: False
 Comment: The following requisites were not found:
                             watch:
                                 file: /etc/nginx/conf.d
 Changes: 
Run Code Online (Sandbox Code Playgroud)

我也尝试了许多变化,包括尾部斜线,但它们都不起作用.

应该- file: /etc/nginx/conf.d/改变什么?

service nginx salt-stack

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

SaltStack:是否可以在主服务器上应用状态,如果可以,如何应用?

我是SaltStack的初学者,但是我已经设法在一台机器上设置一些状态并在一个小兵上运行它们.

我现在拥有的是使用salt-master的Debian机器设置以及另一个作为salt-minion的Debian设置.

由于我也使用salt-master作为开发机器,我想知道我是否可以以某种方式在主机本身上应用状态.如果是这样,怎么样?

是否有一个命令可以运行以在主站上应用状态?(到目前为止我无法找到它)

我是否应该在同一台机器上安装salt-minion以便能够执行此操作并简单地将同一台机器注册为minion本身?

谢谢!

salt-stack

19
推荐指数
2
解决办法
9130
查看次数

如何使用Salt Stack执行多个命令?

我试着添加:

 mypack:
   pkg:
     - installed
     - pkgs:
       - mercurial
       - git
   cmd.run:
       - name: 'mkdir -p /opt/mypack'
   cmd.run: 'hg pull -u -R /opt/mypack || hg clone -R /opt https://...'
   cmd.run: 'ln -s /opt/mypack/etc/init.d/xxx /etc/init.d/xxx'
Run Code Online (Sandbox Code Playgroud)

但由于某种原因,状态似乎执行/安装但命令没有执行,或者至少不是全部执行.

我需要一个运行多个命令的解决方案,如果其中任何一个失败,则会使部署失败.

我知道我可以写一个bash脚本并包含这个bash脚本,但我一直在寻找一个只能用于YAML文件的解决方案.

salt-stack

17
推荐指数
3
解决办法
3万
查看次数

如何获取模板中所有盐爪的列表?

基本上我正在创建一个描述Munin服务器配置的Salt状态,我需要得到一个已知给主人的所有小兵的列表,如下所示:

{% for host in pillar['munin_clients'] %}
[{{ host.fqdn }}]
    address {{ host.ip }}
    use_node_name yes
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

唯一的区别是我不想使用支柱,我需要动态填充此列表.ret.get_minions似乎是相关的,但由于某种原因我不能使它工作.我有什么选择?

configuration-management salt-stack

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