Не найден ожидаемый ключ при анализе сопоставления блоков

#node.js #ubuntu #ansible

#node.js #ubuntu #ansible

Вопрос:

Я запускаю ansible play-book, но получаю ошибку ниже, -используя ansible 2.7.6, ubuntu 16.04. в playbook я упомянут

 (<unknown>): did not find expected key while parsing a block mapping at line 6 column 3
  

Я пробовал без become-да, ubuntu, sudo, который также выдает ту же проблему, и ansible говорит:

 The offending line appears to be:


   - name: build npm
   ^ here
  
  - hosts: all
   vars:
       app_dir: /home/ubuntu/app/backend-app-name
   tasks:
 - name: build npm
   command: "chdir={{ app_dir }} {{ item }}"
     with_items:
     - /usr/bin/npm run build
      become: yes
      become_user: ubuntu
      become_method: sudo
  

Ответ №1:

Неверный отступ. Правильный синтаксис

    tasks:
     - name: build npm
       command: ...
       with_items:
         - /usr/bin/npm run build
       become: yes
       become_user: ubuntu
       become_method: sudo
  

Комментарии:

1. если мне нужно сначала запустить npm buil, мне нужно перейти в этот каталог, а затем запустить npm buil, обе команды должны выполняться вместе, я попробовал то же самое, что вы разделили, но получаю ту же ошибку - name: build npm command: chdir=/home/ubuntu/app/backend-app-name {{ item }} with_items: - /usr/bin/npm run build become: yes become_user: ubuntu become_method: sudo

2. Любое альтернативное решение для запуска сборки npm с использованием ansible, в любом случае, приведенный ниже yml-файл не выдает никаких ошибок, но сборка не происходит. - name: npm build command: chdir=/home/ubuntu/node-path/app-name/ npm run build become: yes become_user: root

3. Проблемой был отступ. В моей конфигурации VS Code функция сохранения также автоматически форматирует мой код, и в этом случае большая часть кода сдвинута на одну вкладку вправо. Мне пришлось изменить это, чтобы переместить код обратно в начало (на одну вкладку влево), чтобы он заработал.

Ответ №2:

Я получил эту же ошибку, когда в задаче YAML была дополнительная одинарная кавычка.

При анализе сопоставления блоков не найден ожидаемый ключ.

     - task: DotNetCoreCLI@2
      inputs:
        command: 'pack'
        packagesToPack: '**/DoesNotMatter/OL.csproj'
        #...
        versionEnvVar: 'PACKAGEVERSION''
  

Смотрите последний (дополнительный ' ) символ примера кода.

Ответ №3:

Удалены конечные пробелы

У меня была аналогичная проблема, когда rubocop анализировал файл yaml.

 › ruby_koans (mark) rubocop --auto-gen-config
(.rubocop.yml): did not find expected key while parsing a block mapping at line 1 column 1
  

Удален завершающий пробел. (в VSCode используется параметр «Обрезать завершающий пробел».

 › ruby_koans (mark) rubocop --auto-gen-config
Added inheritance from `.rubocop_todo.yml` in `.rubocop.yml`.
Phase 1 of 2: run Layout/LineLength cop
Inspecting 42 files