0

我正在尝试设置 Ansible 分子来测试不同操作系统上的角色。例如,此角色在执行以下安装的任务时失败snap install core

https://github.com/ProfessorManhattan/Ansible-Role-Snapd

molecule.yml

---
dependency:
  name: galaxy
  options:
    role-file: requirements.yml
    requirements-file: requirements.yml
driver:
  name: docker
platforms:
  - name: Ubuntu-20.04
    image: professormanhattan/ansible-molecule-ubuntu2004
    command: /sbin/init
    tmpfs:
      - /run
      - /tmp
    volumes:
      - /sys/fs/cgroup:/sys/fs/cgroup:ro
    privileged: true
    pre_build_image: true
provisioner:
  name: ansible
  connection_options:
    ansible_connection: docker
    ansible_password: ansible
    ansible_ssh_user: ansible
  inventory:
    group_vars:
      all:
        molecule_test: true
  options:
    vvv: true
  playbooks:
    converge: converge.yml
verifier:
  name: ansible
scenario:
  create_sequence:
    - dependency
    - create
    - prepare
  check_sequence:
    - dependency
    - cleanup
    - destroy
    - create
    - prepare
    - converge
    - check
    - destroy
  converge_sequence:
    - dependency
    - create
    - prepare
    - converge
  destroy_sequence:
    - dependency
    - cleanup
    - destroy
  test_sequence:
    - lint
    - dependency
    - cleanup
    - destroy
    - syntax
    - create
    - prepare
    - converge
    - idempotence
    - side_effect
    - verify
    - cleanup
    - destroy

install-Debian.yml

---
- name: Ensure snapd is installed
  apt:
    name: snapd
    state: present
    update_cache: true

- name: Ensure fuse filesystem is installed
  apt:
    name: fuse
    state: present

- name: Ensure snap is started and enabled on boot
  ansible.builtin.systemd:
    enabled: true
    name: snapd
    state: started

- name: Ensure snap core is installed # This task is failing
  community.general.snap:
    name: core
    state: present

我收到的错误是:

TASK [professormanhattan.snapd : Ensure fuse filesystem is installed] **********
ok: [Ubuntu-20.04]

TASK [professormanhattan.snapd : Ensure snap is started and enabled on boot] ***
changed: [Ubuntu-20.04]

TASK [professormanhattan.snapd : Ensure snap core is installed] ****************
fatal: [Ubuntu-20.04]: FAILED! => {"changed": false, "channel": "stable", "classic": false, "cmd": "sh -c \"/usr/bin/snap install core\"", "msg": "Ooops! Snap installation failed while executing 'sh -c \"/usr/bin/snap install core\"', please examine logs and error output for more details.", "rc": 1, "stderr": "error: cannot perform the following tasks:\n- Setup snap \"core\" (10823) security profiles (cannot reload udev rules: exit status 1\nudev output:\nFailed to send reload request: No such file or directory\n)\n", "stderr_lines": ["error: cannot perform the following tasks:", "- Setup snap \"core\" (10823) security profiles (cannot reload udev rules: exit status 1", "udev output:", "Failed to send reload request: No such file or directory", ")"], "stdout": "", "stdout_lines": []}

我尝试测试的所有其他操作系统也是如此。这是我用来构建 Ubuntu 映像的 Dockerfile 的链接:

Dockerfile

FROM ubuntu:20.04
LABEL maintainer="help@megabyte.space"

ENV container docker
ENV DEBIAN_FRONTEND noninteractive

# Source: https://github.com/ansible/molecule/issues/1104
RUN set -xe \
  && apt-get update \
  && apt-get install -y apt-utils \
  && apt-get upgrade -y \
  && apt-get install -y \
      build-essential \
      libyaml-dev \
      python3-apt \
      python3-dev \
      python3-pip \
      python3-setuptools \
      python3-yaml \
      software-properties-common \
      sudo \
      systemd \
      systemd-sysv \
  && apt-get clean \
  && pip3 install \
      ansible \
      ansible-lint \
      flake8 \
      molecule \
      yamllint \
  && mkdir -p /etc/ansible \
  && echo "[local]\nlocalhost ansible_connection=local" > /etc/ansible/hosts \
  && groupadd -r ansible \
  && useradd -m -g ansible ansible \
  && usermod -aG sudo ansible \
  && sed -i "/^%sudo/s/ALL\$/NOPASSWD:ALL/g" /etc/sudoers

VOLUME ["/sys/fs/cgroup", "/tmp", "/run"]

CMD ["/sbin/init"]

寻找一个geerlingguy。

4

0 回答 0