【问题标题】:Using chown command in ansible?在ansible中使用chown命令?
【发布时间】:2019-11-25 23:26:21
【问题描述】:

我在ubuntu中有一个命令

  sudo chown $(id -u):$(id -g) $HOME/.kube/config 

我想转换成 ansible 脚本。我在下面尝试过

- name: Changing ownership
      command: chown $(id -u):$(id -g) $HOME/.kube/config
      become: true 

但我收到如下错误

致命:[ubuntu]:失败! => {“已更改”:t> 致命:[ubuntu]:失败! => {“改变”:真,“cmd”:[“chown”,“$(id”, "-u):$(id", "-g)", "$HOME/.kube/config"], "delta": "0:00:00.003948", "end": "2019-07-17 07:22:31.798773", "msg": "非零返回码", “rc”:1,“开始”:“2019-07-17 07:22:31.794825”,“stderr”:“chown: 无效选项 -- 'u'\n尝试 'chown --help' 获取更多信息。", "stderr_lines": ["chown: 无效选项 -- 'u'", "试试 'chown --help' 更多信息。"], "stdout": "", "stdout_lines": []}rue, "cmd": ["chown", "$(id", "-u):$(id", "-g)", "$HOME/.kube/config"], "delta": "0:00:00.003948", “结束”:“2019-07-17 07:22:31.798773”,“味精”:“非零返回码”, “rc”:1,“开始”:“2019-07-17 07:22:31.794825”,“stderr”:“chown: 无效选项 -- 'u'\n尝试 'chown --help' 获取更多信息。", "stderr_lines": ["chown: 无效选项 -- 'u'", "试试 'chown --help' 了解更多信息。"], "stdout": "", "stdout_lines": []}

编辑: 文件模块也不起作用。

  - name: Create a symbolic link
    file:
      path: $HOME/.kube
      owner: $(id -u)
      group: $(id -g)

【问题讨论】:

  • 你为什么不使用带有ownergroup选项的ansible file模块?
  • 这里用户和组的id是动态获取的。我该怎么做呢

标签: ansible ansible-2.x chown


【解决方案1】:

假设文件已经存在并且您只想更改权限,您可以从 Ansible 事实中检索用户 ID 和组,然后执行以下操作:

- name: Change kubeconfig file permission
  file:
    path: $HOME/.kube/config 
    owner: "{{ ansible_effective_user_id }}"
    group: "{{ ansible_effective_group_id }}"

您也可以根据需要使用ansible_real_group_id / ansible_real_user_idansible_user_gid/ansible_user_uid

请不要忘记 ansible 表达式周围的双引号。

查看this post了解真实用户和有效用户之间的区别

所有可用变量请参见Ansible docs on system variables

【讨论】:

    【解决方案2】:

    试试下面。

      - name: chown to username you login and chmod as required
        file:
          path: $HOME/.kube/config
          owner: "{{ ansible_user }}"
          group: "{{ ansible_user }}"
          mode: 0644
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-03-11
      • 1970-01-01
      • 1970-01-01
      • 2014-07-06
      • 2023-03-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多