【问题标题】:Change Elasticsearch password with Ansible使用 Ansible 更改 Elasticsearch 密码
【发布时间】:2023-01-21 19:52:43
【问题描述】:

我已经使用 ansible AWX 在 Windows 服务器上安装了 Elasticsearch。 现在我正在尝试将初始密码重置为我的新密码(也使用 ansible)。

我知道我可以手动完成:

D:\elasticsearch-8.6.0\bin\elasticsearch-reset-password -b -u elastic -i

但我找不到一种方法来做到这一点/通过 ansible 阅读它。

我还可以使用 ansible 发送 API 请求:

    - name: Push password
      ansible.windows.win_uri:
        url: http://localhost:9200/_security/user/_password?pretty
        method: PUT
        url_username: elastic
        url_password: my_password
        body:
          password: my_new_password
        headers:
          Content-Type: "application/json"

但它需要我提供旧密码,在我手动重置它之前我不知道它(这就是我试图自动化的)。

有没有办法用ansible做到这一点?

【问题讨论】:

    标签: windows elasticsearch ansible


    【解决方案1】:

    最有效的方法是直接将密码重置为目标密码。但是由于您只能与elasticsearch-reset-password 交互地执行此操作,因此这需要使用ansible.builtin.expect module,不幸的是available only for linux hosts

    所以在windows下,恐怕唯一的选择是:

    1. 重置为随机密码并在变量中读取
    2. 将随机密码更改为您要配置的密码

      发出以下命令:

      elasticsearch-reset-password -u elastic -b
      

      stdout 上输出如下内容:

      Password for the [elastic] user successfully reset.
      New value: dTrR*tAdnCCkTZ4+Edgd
      

      所以我们要查找的信息在最后一行

      考虑到这一点,下面的(未经测试的)剧本应该可以达到您的预期(或者至少让您走上正轨)。

      - name: Reset elastic user password to random
        ansible.builtin.win_command: elasticsearch-reset-password -u elastic -b
        register: reset_cmd
      
      - name: Push password
        vars:
          my_password: "{{ reset_cmd.stdout_lines[-1]
            | regex_replace('^New value: (.*)$', '\1') }}"
        ansible.windows.win_uri:
          url: http://localhost:9200/_security/user/_password?pretty
          method: PUT
          url_username: elastic
          url_password: "{{ my_password }}"
          body:
            password: "verysecurenewpassword"
          headers:
            Content-Type: "application/json"
      

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-08-15
      • 2016-11-20
      • 2017-11-06
      • 2023-04-09
      • 1970-01-01
      • 2023-03-07
      • 2014-12-10
      • 2018-09-08
      相关资源
      最近更新 更多