看看如何(正确地)从bash命令(在Dockerfile文件中)转换为可执行的任务/角色,该任务/角色将下载最新的aws-iam-authenticator二进制文件并安装到Ubuntu (x64)操作系统上的/usr/local/bin。
目前我有:
curl -s https://api.github.com/repos/kubernetes-sigs/aws-iam-authenticator/releases/latest | grep "browser_download.url.*linux_amd64" | cut -d : -f 2,3 | tr -d '"' | wget -O /usr/local/bin/aws-iam-authenticator -qi - && chmod 555 /usr/local/bin/aws-iam-authenticator
发布于 2019-03-08 04:17:53
基本上,您需要编写一本剧本,并将该命令分成不同的任务
示例example.yml
文件
- hosts: localhost
tasks:
- shell: |
curl -s https://api.github.com/repos/kubernetes-sigs/aws-iam-authenticator/releases/latest
register: json
- set_fact:
url: "{{ (json.stdout | from_json).assets[2].browser_download_url }}"
- get_url:
url: "{{ url }}"
dest: /usr/local/bin/aws-iam-authenticator-ansible
mode: 0555
您可以通过执行以下操作来执行它
ansible-playbook --become example.yml
我希望这就是您要找的;-)
发布于 2019-03-08 11:33:43
因此,在找到其他给出强烈暗示、信息和未解决问题的帖子后,Ansible - Download latest release binary from Github repo & https://github.com/ansible/ansible/issues/27299#issuecomment-331068246。我能够想出以下对我有效的ansible任务。
- name: Get latest url for linux-amd64 release for aws-iam-authenticator
uri:
url: https://api.github.com/repos/kubernetes-sigs/aws-iam-authenticator/releases/latest
return_content: true
body_format: json
register: json_response
- name: Download and install aws-iam-authenticator
get_url:
url: " {{ json_response.json | to_json | from_json| json_query(\"assets[?ends_with(name,'linux_amd64')].browser_download_url | [0]\") }}"
mode: 555
dest: /usr/local/bin/aws-iam-authenticator
发布于 2021-04-20 15:52:27
Note如果您运行的是AWS CLI版本1.16.156或更高版本,则不需要安装验证器。相反,您可以使用aws eks get-token命令。有关详细信息,请参阅Create kubeconfig manually。
https://stackoverflow.com/questions/55050984
复制相似问题