Ansible:'shell' 未执行
Ansible: 'shell' not executing
我正在尝试 运行 shell 命令来安装从我的本地 Artifactory 存储库下载的包,因为我无法直接从 Internet 下载它。
当我运行直接在节点上执行命令时
rpm -ivh kubectl-1.1.1.x86_64.rpm --nodigest --nofiledigest
效果很好。
然后将 Ansible playbook 原样放入
- name: Install Kubectl
shell: rpm -ivh kubectl-1.1.1.x86_64.rpm --nodigest --nofiledigest
没有任何反应。
它没有错误..它只是没有安装。
我也尝试了 command
和 ansible.builtin.shell
模块,但没有任何效果。
请问有办法吗?
尝试使用 command
模块并注册输出 我用它通过 pecl 在 linux
上为 oracle 数据库安装 oci8
你的问题有不同的主题。
关于
to install a package downloaded from my local Artifactory repository, as I don't have access to download it straight from the internet.
您可以使用不同的方法。
1.直接下载
- name: Make sure package becomes installed from internal repository
yum:
name: https://{{ REPOSITORY_URL }}/artifactory/kube/kubectl-{{ KUBE_VERSION }}.x86_64.rpm
state: present
2。配置本地存储库
下一个是提供一个.repo
模板文件如
[KUBE]
name = Kubectl - $basearch
baseurl = https://{{ REPOSITORY_URL }}/artifactory/kube/
username = {{ API_USER }}
password = {{ API_KEY }}
sslverify = 1
enabled = 1
gpgcheck = 1
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-KUBE
并执行
- name: Make sure package becomes installed from internal repository
yum:
name: kubectl
state: present
这是可能的,因为如果配置正确,JFrog Artifactory 可以提供本地 RPM 存储库。有关更多信息,请研究那里的文档,因为它几乎只与正确配置有关。
关于
Nothing happens. It doesn't error.. It just doesn't install.
您可以使用多个任务来拆分您的步骤,使它们幂等并更好地了解它们的工作方式。
3。 shell
、rpm
和 debug
- name: Make sure destination folder for package download (/opt/packages) exists
file:
path: "/opt/packages/"
state: directory
- name: Download RPM to remote hosts
get_url:
url: "https://{{ REPOSTORY_URL }}/artifactory/kube/kubectl-{{ KUBE_VERSION }}.x86_64.rpm"
dest: "/opt/packages/kubectl-{{ KUBE_VERSION }}.x86_64.rpm"
- name: Check package content
shell:
cmd: "rpm -qlp /opt/packages/kubectl-{{ KUBE_VERSION }}.x86_64.rpm"
register: rpm_qlp
- name: STDOUT rpm_qlp
debug:
msg: "{{ rpm_qlp.stdout.split('\n')[:-1] }}"
- name: Install RPM using 'command: rpm -ivh'
shell:
cmd: "rpm -ivh /opt/packages/kubectl-{{ KUBE_VERSION }}.x86_64.rpm"
register: rpm_ivh
- name: STDOUT rpm_ivh
debug:
msg: "{{ rpm_ivh.stdout.split('\n')[:-1] }}"
取决于 RPM 包、环境和配置,所有这些都可能正常工作。
我正在尝试 运行 shell 命令来安装从我的本地 Artifactory 存储库下载的包,因为我无法直接从 Internet 下载它。
当我运行直接在节点上执行命令时
rpm -ivh kubectl-1.1.1.x86_64.rpm --nodigest --nofiledigest
效果很好。
然后将 Ansible playbook 原样放入
- name: Install Kubectl
shell: rpm -ivh kubectl-1.1.1.x86_64.rpm --nodigest --nofiledigest
没有任何反应。
它没有错误..它只是没有安装。
我也尝试了 command
和 ansible.builtin.shell
模块,但没有任何效果。
请问有办法吗?
尝试使用 command
模块并注册输出 我用它通过 pecl 在 linux
你的问题有不同的主题。
关于
to install a package downloaded from my local Artifactory repository, as I don't have access to download it straight from the internet.
您可以使用不同的方法。
1.直接下载
- name: Make sure package becomes installed from internal repository
yum:
name: https://{{ REPOSITORY_URL }}/artifactory/kube/kubectl-{{ KUBE_VERSION }}.x86_64.rpm
state: present
2。配置本地存储库
下一个是提供一个.repo
模板文件如
[KUBE]
name = Kubectl - $basearch
baseurl = https://{{ REPOSITORY_URL }}/artifactory/kube/
username = {{ API_USER }}
password = {{ API_KEY }}
sslverify = 1
enabled = 1
gpgcheck = 1
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-KUBE
并执行
- name: Make sure package becomes installed from internal repository
yum:
name: kubectl
state: present
这是可能的,因为如果配置正确,JFrog Artifactory 可以提供本地 RPM 存储库。有关更多信息,请研究那里的文档,因为它几乎只与正确配置有关。
关于
Nothing happens. It doesn't error.. It just doesn't install.
您可以使用多个任务来拆分您的步骤,使它们幂等并更好地了解它们的工作方式。
3。 shell
、rpm
和 debug
- name: Make sure destination folder for package download (/opt/packages) exists
file:
path: "/opt/packages/"
state: directory
- name: Download RPM to remote hosts
get_url:
url: "https://{{ REPOSTORY_URL }}/artifactory/kube/kubectl-{{ KUBE_VERSION }}.x86_64.rpm"
dest: "/opt/packages/kubectl-{{ KUBE_VERSION }}.x86_64.rpm"
- name: Check package content
shell:
cmd: "rpm -qlp /opt/packages/kubectl-{{ KUBE_VERSION }}.x86_64.rpm"
register: rpm_qlp
- name: STDOUT rpm_qlp
debug:
msg: "{{ rpm_qlp.stdout.split('\n')[:-1] }}"
- name: Install RPM using 'command: rpm -ivh'
shell:
cmd: "rpm -ivh /opt/packages/kubectl-{{ KUBE_VERSION }}.x86_64.rpm"
register: rpm_ivh
- name: STDOUT rpm_ivh
debug:
msg: "{{ rpm_ivh.stdout.split('\n')[:-1] }}"
取决于 RPM 包、环境和配置,所有这些都可能正常工作。