Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arangodb 如何在使用saltstack启动服务之前运行命令_Arangodb_Salt Stack - Fatal编程技术网

Arangodb 如何在使用saltstack启动服务之前运行命令

Arangodb 如何在使用saltstack启动服务之前运行命令,arangodb,salt-stack,Arangodb,Salt Stack,我正在使用saltstack在centos7机器上启动arangodb实例。我想用一个自定义密码启动它,所以我想在机器上安装ARANGODB 3.5 rpm后但在启动之前运行ARANGODB_DEFAULT_ROOT_password=arango secure installation,因为您只能在机器未运行时设置密码。我不确定如何使用salt stack实现这一点,但我认为它与cmd.run salt函数有关 以下是我的安装/启动salt代码: arangodb_3_server: pk

我正在使用saltstack在centos7机器上启动arangodb实例。我想用一个自定义密码启动它,所以我想在机器上安装ARANGODB 3.5 rpm后但在启动之前运行
ARANGODB_DEFAULT_ROOT_password=arango secure installation
,因为您只能在机器未运行时设置密码。我不确定如何使用salt stack实现这一点,但我认为它与cmd.run salt函数有关

以下是我的安装/启动salt代码:

arangodb_3_server:
  pkg.latest:
    - refresh: True
    - pkgs:
      - arangodb3
    cmd.run:
      - name: "ARANGODB_DEFAULT_ROOT_PASSWORD={{ arangodb.get('ARANGO_ROOT_PASSWORD', '') }} arango-secure-installation"
  service.running:
    - name: arangodb3
    - enable: True
    - watch:
      - file: /etc/arangodb3/arangod.conf

所以我想知道我是否可以把安全安装命令放在某个地方来完成这个任务?根据我的尝试,我只得到了编译错误,或者它没有设置密码。

在Ubuntu中,我使用policy rc.d返回非零代码。我没有找到CentOS的替代解决方案。您可以在安装后使用service.dead停止服务,然后使用cmd.run运行命令,然后按服务启动服务。running

My 2 cents:这将起作用,但不是幂等的。服务将按原样每次停止。您可能想使用某种类型的必备品。@pier您是对的。也许我们可以用谷物来处理。如果我们在第一次之后添加颗粒并检查是否存在颗粒,则跳过重新启动部分。