私は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]:失敗! => {"変更":true、 "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、「start ":" 2019-07-17 07:22:31.794825 "、" stderr ":" chown:invalid option-'u'\n'chown --help 'for more information。 "、" stderr_lines ":[" chown :無効なオプション-'u' "、"詳細については 'chown --help'を試してください。 "]、" stdout ":" "、" stdout_lines ":[]} rue、" 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、" start ":" 2019-07-17 07:22:31.794825 "、" stderr " : "chown:invalid option-'u'\n'chown --help 'for more information。"、 "stderr_lines":["chown:invalid option-' u '"、 "Try' chown --help '詳細] "]、" stdout ":" "、" stdout_lines ":[]}
編集:ファイルモジュールも機能しませんでした。
- name: Create a symbolic link
file:
path: $HOME/.kube
owner: $(id -u)
group: $(id -g)
ファイルがすでに存在していて、権限を変更したいだけの場合は、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_id
またはansible_user_gid
/ansible_user_uid
を使用することもできます。
Ansible式を囲む二重引用符を忘れないでください。
実際のユーザーと効果的なユーザーの違いの詳細については この投稿 を参照してください
利用可能なすべての変数については、 システム変数に関するAnsibleのドキュメント を参照してください
以下をお試しください。
- name: chown to username you login and chmod as required
file:
path: $HOME/.kube/config
owner: "{{ ansible_user }}"
group: "{{ ansible_user }}"
mode: 0644