2016-12-06 3 views
0

Мы должны установить Apache, скопировать файлы конфигурации, а затем запустить и настроить его для запуска.Ansible Playbook - установка/настройка ошибки Apache

Вот сборник пьес написано до сих пор:

--- 
- hosts: example 

tasks: 
- name:Install Apache 
    command: yum install --quiet -y httpd httpd-devel 
- name:Copy configuration files 
    command:> 
    cp httpd.conf /etc/httpd/conf/httpd.conf 
- command:> 
    cp httpd-vshosts.conf /etc/httpd/conf/httpd-vshosts.conf 
- name:Start Apache and configure it to run 
    command: service httpd start 
- command: chkconfig httpd on 

Однако, когда я запускаю команду: ansible-playbook playbook.yml, я получаю это:

error: ERROR! Syntax Error while loading YAML. 
The error appears to have been in '/etc/ansible/playbook.yml': line 3, column 1, but may 
be elsewhere in the file depending on the exact syntax problem. 

The offending line appears to be: 

- hosts: example 
tasks: 
^ here 

Я пытался баловаться с пробелами и перестановке вещи, но я все еще получаю эту ошибку. Я уверен, что это что-то маленькое, чего я здесь не хватает, но это подталкивает меня к концу! Любая помощь будет оценена! Спасибо.

ответ

2

Что касается вашего сообщения об ошибке, вам необходимо обратить внимание на отступ. Вот как это должно выглядеть следующим образом:

--- 
- hosts: example 

    tasks: 
    - name: Install Apache 
     command: yum install --quiet -y httpd httpd-devel 
    - name: Copy configuration files 
     command: cp httpd.conf /etc/httpd/conf/httpd.conf 
    - command: cp httpd-vshosts.conf /etc/httpd/conf/httpd-vshosts.conf 
    - name: Start Apache and configure it to run 
     command: service httpd start 
    - command: chkconfig httpd on 

Но это скорее пример того, как не использовать анзибль.

Я предполагаю, что вы только начали использовать анзибль и хотите проверить вещи, но вместо того, чтобы все с command модулем, вы должны достаточно воспользоваться собственными модулями, как yum или service. Посмотрите примеры на связанных страницах документации.


Также обратите внимание, что в вашем примере некоторые задачи имеют имена, некоторые из которых нет. Например это две разные задачи (первый один с именем, секунды один без):

- name: Copy configuration files 
    command: cp httpd.conf /etc/httpd/conf/httpd.conf 
- command: cp httpd-vshosts.conf /etc/httpd/conf/httpd-vshosts.conf 

Более уместно именование должно быть:

- name: Copy one configuration file 
    command: cp httpd.conf /etc/httpd/conf/httpd.conf 
- name: Copy another configuration file 
    command: cp httpd-vshosts.conf /etc/httpd/conf/httpd-vshosts.conf 

Еще одна проблема: эта команда будет не должно быть httpd-vshosts.conf в текущем каталоге на целевом компьютере:

- command: cp httpd-vshosts.conf /etc/httpd/conf/httpd-vshosts.conf 

Вы должны предоставить полный путь.

+0

Большое спасибо. Это сработало для меня .. Проблема была в пробеле! –

Смежные вопросы