标签: salt-stack

Saltstack分组命令

如果我必须执行以下3个命令,我该如何对它们进行分组,所以我只需要调用一个命令?

salt '*' git.fetch cwd=/var/git/myproject opts='--all' user=git
salt '*' git.pull cwd=/var/git/myproject opts='origin master'
salt '*' nginx.signal reload
Run Code Online (Sandbox Code Playgroud)

我可以使用面料把它们放在一个函数中说deploy可能接受一个minion名称然后通过master运行,但是我想知道saltstack是否有内置的东西?

python salt-stack

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

如何使用salt状态设置root密码

I want to set strong password for mysql root user. But there is a egg-hen problem. I have empty server. I salt it. The root password is empty (by default after install).

If I use

root: 
  mysql_user.present:
  - name: root
  - password: $ecur3h4x0r
  - host: %
Run Code Online (Sandbox Code Playgroud)

Then I would not be able to call any other mysql states because they would need the password. But the next time I do highstate this call would not work, because the state tries …

salt-stack

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

我怎样才能获得使用盐的小兵的可用记忆?

我正在寻找一种简单的方法来获取有关内存使用情况的信息,例如salt minions的免费内存.

到目前为止,我知道可以列出总内存,salt '*' grains.items但我甚至不知道如何只列出总内存而不是全谷值数据.

第二个问题是我不知道如何获得返回的空闲内存.

salt-stack

6
推荐指数
3
解决办法
2864
查看次数

盐堆柱模板中的条件是否安全?

我最近在这里的一个帖子的盐柱中看到了以下结构

/srv/pillar/ssh.sls:

ssh_certs:
{% if grains['fqdn'] == 'server1.example.com' %}
    dsa: |
        -----BEGIN DSA PRIVATE KEY-----
        {# key text goes here with consistant indentation... #}
        -----END DSA PRIVATE KEY-----
    ecdsa: |
        -----BEGIN ECDSA PRIVATE KEY-----
        {# key text goes here with consistant indentation... #}
        -----END ECDSA PRIVATE KEY-----
    rsa: |
        -----BEGIN RSA PRIVATE KEY-----
        {# key text goes here with consistant indentation... #}
        -----END RSA PRIVATE KEY-----
{% elif grains['fqdn'] == 'server2.example.com' %}
    # same as above but …
Run Code Online (Sandbox Code Playgroud)

salt-stack

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

saltstack:仅在不存在的情况下创建目录

目前我有以下创建目录的规则

/init/dir:
  file.recurse:
    - source:  salt://init_dir/init
    - user:  name
    - group:  group
    - name:  /path/init
    - dir_mode: 2775
    - file_mode: 777
Run Code Online (Sandbox Code Playgroud)

现在我想只在目录不存在的情况下才在新的minions上创建一个目录.

linux salt-stack

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

使用saltstack创建AWS EC2实例映像?

有没有人尝试使用saltstack创建AWS AMI(图像).

我尝试使用它能够从现有的AMI创建新实例,但如何使用salt-cloud创建图像?

也尝试使用boto_ec2,但它给出了模块'boto_ec2'不可用的错误.

amazon-ec2 amazon-web-services salt-stack devops salt-cloud

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

Vagrant OS X不工作

我不知道为什么这个流浪汉的构建不起作用.我正在尝试使用https://docs.saltstack.com/en/getstarted/fundamentals/index.html上的 saltStack教程信息构建

得到以下错误.

无法在远程目录中找到或无法访问"ubuntu/trusty64"框.如果这是HashiCorp的Atlas上的私人包装盒,请确认您已登录 vagrant login.另外,请仔细检查名称.扩展的URL和错误消息如下所示:

网址:[" https://atlas.hashicorp.com/ubuntu/trusty64 "]错误:

操作系统OSX vagrant版本1.8.7

我不知所措

macos vagrant salt-stack

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

在Master上触发事件并等待Salt Minion上的"响应事件"

我想要的是由Minion调用的类似RPC的行为放入某种脚本,然后可以由任何(非Salt,非Python)应用程序和服务调用:

  • 在Master上触发事件(有效负载对应于命令行参数)
  • Reactor系统接管,处理事件并(取决于发送者和事件的有效负载)发送响应事件.
    • 响应事件可能包含敏感的有效负载,并且可能不被任何其他小兵看到(或至少被解密)
  • Minion收到响应事件

我知道我可以使用salt-callsalt.modules.event.fire_master模块向主人发送事件.

那我该如何等待响应事件呢?

如何确保其他Minions无法在事件总线上看到响应事件(从主人发送的所有事件都是公开的,并且过滤发生在Minion端)?我考虑过gpg渲染器,但这可能太复杂了 - 需要有一种方法,因为Master需要将敏感的Pillar数据发送给具有类似要求的Minions.

salt-stack

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

使用多种颗粒瞄准盐奴

在我们的基础设施中,我们在 minion 上设置了多个grain,包括“环境”和“组件”grain。基于此,可以有多个具有相同组件名称的 Minion,每个 Minion 位于不同的环境中。我希望能够基于多个grain来选择minions,而不必在master上定义多个节点组。

我努力了:

salt -G 'component:api,environment:prod' test.ping
Run Code Online (Sandbox Code Playgroud)

这似乎不起作用,我相当广泛地查看了他们的文档,但没有找到这种类型的小兵目标的示例。

这是否可能,如果可以,我将如何去做?

automation salt-stack devops

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

SaltStack:文件来源的逆向工程

如果你看一下设置的主机是SaltStack,那么它有时候就像用vi查看二进制文件一样.

您不知道配置文件是如何创建的.

这会很难解决问题.文件来源的逆向工程需要花费太多时间.

我的目标:通过查看minion(由salt创建)上的unix配置文件到配置来源的源,可以轻松找到方法.就像$Id$在svn和cvs中一样.

我和朋友的一个想法是:

状态file.managed应该(可选)添加文件的源.

例:

我的sls文件包含这个:

file_foo_bar:
  file.managed:
    - source:
      - salt://foo/bar
Run Code Online (Sandbox Code Playgroud)

然后,创建的文件应包含此注释.

# Source: salt://foo/bar
Run Code Online (Sandbox Code Playgroud)

当然这并不简单,因为将注释放入配置文件有不同的方法.

这可行吗?或者是否有更好的解决方案来实现我的目标.

更新

通常我知道我做错了什么,并且可以轻松找到根.如果有几个人在州树上工作,就会出现问题.

debugging reverse-engineering configuration-management salt-stack

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