Ansible yml 파일 실행 시 오류 해결

Ansible yml 파일 실행 시 오류 해결

라는 프로그램을 설치하려고 합니다.인터넷파이내 라즈베리 파이에. 나는 지침을 따랐으며 모든 것이 올바르게 설치되었다고 생각합니다. ansible-playbook 실행의 마지막 단계에 있습니다.

오류가 발생합니다.

pi@raspberrypi:~/internet-pi $ ansible-playbook main.yml
ERROR! no action detected in task. This often indicates a misspelled module name, or incorrect module path.

The error appears to have been in '/home/pi/internet-pi/main.yml': line 26, column 7, but may
be elsewhere in the file depending on the exact syntax problem.

The offending line appears to be:

  handlers:
    - name: Include handlers.
      ^ here

이 문제를 해결하려면 어디서부터 시작해야 할지 모르겠습니다. yml 파일은 다음과 같습니다.

---
- hosts: internet_pi
  become: true

  pre_tasks:
    - name: Load configuration (with defaults from example file).
      ansible.builtin.include_vars: "{{ item }}"
      loop:
        - example.config.yml
        - config.yml

    - name: Ensure apt cache is up to date.
      ansible.builtin.apt:
        update_cache: true
        cache_valid_time: 3600
      when:
        - ansible_facts.os_family == "Debian"

    - name: Ensure pacman cache is up to date
      community.general.pacman:
        update_cache: true
      when:
        - ansible_facts.os_family == "Archlinux"

  handlers:
    - name: Include handlers.
      ansible.builtin.import_tasks: tasks/handlers.yml

  tasks:
    - name: Setup Docker.
      ansible.builtin.import_tasks: tasks/docker.yml

    - name: Set up Internet Monitoring.
      ansible.builtin.import_tasks: tasks/internet-monitoring.yml
      when: monitoring_enable

    - name: Set up Pi Hole.
      ansible.builtin.import_tasks: tasks/pi-hole.yml
      when: pihole_enable

    - name: Set up Shelly Plug Monitoring.
      ansible.builtin.import_tasks: tasks/shelly-plug.yml
      when: shelly_plug_enable

    - name: Set up Air Gradient Monitoring.
      ansible.builtin.import_tasks: tasks/airgradient.yml
      when: airgradient_enable

    - name: Set up Starlink Monitoring.
      ansible.builtin.import_tasks: tasks/starlink.yml
      when: starlink_enable

handlers.yml은

---
- name: Restart pi-hole
  community.docker.docker_compose:
    project_src: ~/pi-hole/
    build: false
    restarted: true
  become: false

- name: Restart internet-monitoring
  community.docker.docker_compose:
    project_src: ~/internet-monitoring/
    build: false
    restarted: true
  become: false

- name: Restart shelly-plug-prometheus
  community.docker.docker_compose:
    project_src: ~/shelly-plug-prometheus/
    build: false
    restarted: true
  become: false

- name: Restart airgradient-prometheus
  community.docker.docker_compose:
    project_src: ~/airgradient-prometheus/
    build: false
    restarted: true
  become: false

- name: Restart starlink-exporter
  community.docker.docker_compose:
    project_src: ~/starlink-exporter/
    build: false
    restarted: true
  become: false

실행하려고 하면 ansible.builtin.import_tasks"명령을 찾을 수 없습니다"라는 메시지가 나타납니다.

문제 해결은 어디에서 시작해야 합니까?

답변1

새로운 Raspberry Pi 4에서 internet-pi를 설정하는 데 동일한 문제가 발생하여 sudo apt purge ansible처음부터 시작하기로 결정했습니다 sudo apt purge python3-pip. 이 작업을 수행할 때 pip3 install ansiblepython3-pip 설치가 충분했을 때 첫 번째 실행 후 실수로 이것을 실행했다는 것을 깨달았습니다 . sudo apt-get install -y python3-pip그래서 나는 이후의 명시적인 Ansible 설치로 인해 Ansible 설치가 엉망이 된 것 같습니다. 그래서 python3-pip를 지우고 설치한 후에는 모든 것이 잘 작동했습니다.

답변2

내 생각에는 핸들러를 가져올 때 - 이름을 갖고 싶지 않은 것 같습니다. 작업을 트리거하는 데 사용되는 이름은 handlers.yml에 있습니다. 삭제해 보세요. 핸들러 아래에 이름을 지정하고 main.yml의 import 문을 공백 2개로 백업하세요.

관련 정보