#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