我如何通过 Ansible 在气隙系统上安装 snap 包
how could I install a snap package via Ansible on an air-gapped system
在连接到互联网的系统上通过 Ansible 安装 snap 包非常简单。例如:
- name: Install microk8s
become: yes
snap:
name: microk8s
classic: yes
channel: "{{ microk8s_version }}"
现在我需要在一组气隙节点(没有直接连接到互联网)上执行相同的操作。
我可以为所需的包执行 'snap download',并将它们移动到目标机器。
但是如何在 Ansible 中做到这一点呢?对此有任何支持吗?还是我必须使用 shell/command 模块?
感谢
如果您可以将包放到 Ansible 服务器上,则以下代码会将文件复制到目标。类似于以下代码的东西应该可以工作。
- name: copy files/local/microk8s.deb
copy:
src: "files/local/microk8s.deb"
dest: "~/microk8s.deb"
remote_src: no
其中files/
与剧本处于同一水平。
我没有测试过这个,但是这个方法适用于其他模块。
- name: install microk8s, file on local disk
become: yes
snap:
name: /path/to/file
使用@Kevin C 的提示,我能够使用以下剧本解决问题
- name: copy microk8s snap to remote
copy:
src: "{{ item }}"
dest: "~/microk8s/"
remote_src: no
with_fileglob:
- "../files/microk8s/*"
- name: snap ack the new package
become: yes
shell: |
snap ack ~/microk8s/microk8s_1910.assert
snap ack ~/microk8s/core_10583.assert
- name: install microk8s, file on local disk
become: yes
snap:
name: "~/microk8s/core_10583.snap"
- name: install microk8s, file on local disk
become: yes
snap:
name: "~/microk8s/microk8s_1910.snap"
classic: yes
我希望这对其他人也有帮助。
很高兴看到这个记录。
在连接到互联网的系统上通过 Ansible 安装 snap 包非常简单。例如:
- name: Install microk8s
become: yes
snap:
name: microk8s
classic: yes
channel: "{{ microk8s_version }}"
现在我需要在一组气隙节点(没有直接连接到互联网)上执行相同的操作。 我可以为所需的包执行 'snap download',并将它们移动到目标机器。 但是如何在 Ansible 中做到这一点呢?对此有任何支持吗?还是我必须使用 shell/command 模块?
感谢
如果您可以将包放到 Ansible 服务器上,则以下代码会将文件复制到目标。类似于以下代码的东西应该可以工作。
- name: copy files/local/microk8s.deb
copy:
src: "files/local/microk8s.deb"
dest: "~/microk8s.deb"
remote_src: no
其中files/
与剧本处于同一水平。
我没有测试过这个,但是这个方法适用于其他模块。
- name: install microk8s, file on local disk
become: yes
snap:
name: /path/to/file
使用@Kevin C 的提示,我能够使用以下剧本解决问题
- name: copy microk8s snap to remote
copy:
src: "{{ item }}"
dest: "~/microk8s/"
remote_src: no
with_fileglob:
- "../files/microk8s/*"
- name: snap ack the new package
become: yes
shell: |
snap ack ~/microk8s/microk8s_1910.assert
snap ack ~/microk8s/core_10583.assert
- name: install microk8s, file on local disk
become: yes
snap:
name: "~/microk8s/core_10583.snap"
- name: install microk8s, file on local disk
become: yes
snap:
name: "~/microk8s/microk8s_1910.snap"
classic: yes
我希望这对其他人也有帮助。 很高兴看到这个记录。