라는 프로그램을 설치하려고 합니다.인터넷파이내 라즈베리 파이에. 나는 지침을 따랐으며 모든 것이 올바르게 설치되었다고 생각합니다. 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 ansible
python3-pip 설치가 충분했을 때 첫 번째 실행 후 실수로 이것을 실행했다는 것을 깨달았습니다 . sudo apt-get install -y python3-pip
그래서 나는 이후의 명시적인 Ansible 설치로 인해 Ansible 설치가 엉망이 된 것 같습니다. 그래서 python3-pip를 지우고 설치한 후에는 모든 것이 잘 작동했습니다.
답변2
내 생각에는 핸들러를 가져올 때 - 이름을 갖고 싶지 않은 것 같습니다. 작업을 트리거하는 데 사용되는 이름은 handlers.yml에 있습니다. 삭제해 보세요. 핸들러 아래에 이름을 지정하고 main.yml의 import 문을 공백 2개로 백업하세요.