Назад | Перейти на главную страницу

Возможная ошибка: файл tasks / main.yml для роли common должен содержать список задач.

Я унаследовал этот ansible git от своего предшественника. Я не могу заставить его работать, и я думаю, это что-то базовое, чего мне не хватает. Он продолжает давать мне эту прекрасную ошибку: ERROR! The tasks/main.yml file for role 'common' must contain a list of tasks

Затем Ansible указывает на самый первый символ первой строки моего файла common / tasks / main.yml (кстати, у меня есть переменные env, указывающие на правильный каталог Ansible и конфигурацию, не знаю, является ли это причиной)

ERROR! The tasks/main.yml file for role 'common' must contain a list of tasks

The error appears to have been in 
'/root/git/Ansible/playbooks/roles/common/tasks/main.yml': line 1, column 1, but may
be elsewhere in the file depending on the exact syntax problem.

The offending line appears to be:


- name: Installing Samba and etc...
^ here

Структура:

+-Vault
+-playbooks/
  --basic.yml
  +-roles/
    +-common/
      +-handlers/main.yml
      +-tasks/main.yml
      +-templates/
        --krb5.conf.jinja2
        --realmd.conf.jinja2
        --smb.conf.jinja2
        --sssd.conf.jinja2
    +-join/tasks/main.yml
    +-prereq/tasks/main.yml

Я думаю, что важные файлы playbooks/basic.yml и playbooks/roles/common/tasks/main.yml

playbooks / basic.yml

-  name: Install basic AD stuff
   hosts: all
   become: yes
   become_user: root
   gather_facts: no   
   vars_prompt:
      - name: "ad_admin_name"
        prompt: "username for AD join"
        private: no
      - name: "ad_admin_password"
        prompt: "password for AD"
        private: yes
        confirm: yes
   roles:
     - prereq
     - common
     - join
   #The End

сценарии / роли / общие / задачи / main.yml

---
- name: Installing Samba and etc...
  apt: 
     name: "{{ packages }}"
     state: present
  vars:
     packages:
        - adcli
        - libnss-sss
        - libpam-sss
        - libwbclient-sssd
        - realmd
        - sssd
        - sssd-tools
        - samba
        - krb5-config
        - krb5-user
        - winbind
        - libpam-winbind
        - libnss-winbind
        - cifs-utils
- name: "template krb5.conf"
  template:
    src: "krb5.conf.jinja2"
    dest: "/etc/krb5.conf"
    owner: "root"
    group: "root"
    mode: "0644"
    backup: yes
- name: "template realmd.conf"
  template:
    src: "realmd.conf.jinja2"
    dest: "/etc/realmd.conf"
    owner: "root"
    group: "root"
    mode: "0644"
    backup: yes
- name: "template sssd.conf"
  template:
    src: "sssd.conf.jinja2"
    dest: "/etc/sssd/sssd.conf"
    owner: "root"
    group: "root"
    mode: "0600"
    backup: yes
  notify: "sssd needs restart"
- name: "template smb.conf"
  template:
    src: "smb.conf.jinja2"
    dest: "/etc/samba/smb.conf"
    owner: "root"
    group: "root"
    mode: "0644"
    backup: yes

Синтаксис ролей / common / tasks / main.yml в порядке. Можешь попробовать

# ansible-lint roles/common/tasks/main.yml

Протестируйте сценарий

# ansible-lint basic.yml

На всякий случай рекомендую убрать последовательность из трех точек «…» из названия задачи.

- name: Installing Samba and etc
  apt: 

Цитата из Основы YAML

Файлы YAML могут необязательно начинаться с --- и заканчиваться .... Это часть формата YAML и указывает начало и конец документа.