2016-04-12 5 views
4

Я недавно начал использовать анзибль и у меня есть файл PlayBook, содержание следующее:ОШИБКА! в задании не обнаружено никаких действий. Анзибль

...# Code to start an EC2 instance in the same playbook 
...# Then trying to install Nginx on the same server: 

    - hosts: webserver 
    become: yes 
    remote_user: ubuntu 
    tasks: 
     - name: Install Nginx 
     apt: pkg=nginx state=installed update_cache=true 
     notify: 
      - start nginx 

И я адресности следующее сообщение об ошибке при запуске его с

ansible-playbook -i hosts ec2_launch.yml 

ОШИБКА! в задании не обнаружено никаких действий. его часто указывает имя модуля с ошибкой или неправильный путь к модулю.

The offending line appears to be: 

    - hosts: webserver 
    ^here 

Я должен отсутствовать что-то там, не могу понять, что нужно обновить. Может быть, я не могу запустить экземпляр и установить Nginx в тот же плей-лист?

Заранее спасибо.

+0

Да, вы должны быть в состоянии. Вероятно, это ошибка в предыдущем разделе: тот, который на самом деле создает экземпляр – shaps

+0

ОК, так что да, я понял, что поставил эти задачи ниже подсистемы EC2, поэтому я их переместил, и эта ошибка больше не существует. Теперь проблема заключается в том, что он по-прежнему не устанавливает Nginx, поскольку он говорит 'PLAY [Установить Nginx в этот новый экземпляр] ************************* ************* Пропуск: нет совпадений хостов. Хотя у меня есть задача, которая добавляет вновь созданный экземпляр EC2 в файл hosts. –

+0

Я думаю, вы должны добавить задачу обеспечения ec2, чтобы сделать вопрос более ясным. Кроме того, в модуле ec2 [Ansible Docs] (http://docs.ansible.com/ansible/ec2_module.html) есть много примеров того, как запускать задачи во вновь созданных экземплярах. – shaps

ответ

0

Обновление этого, чтобы показать, как этот вопрос был решен:

--- 
    - name: Provision an EC2 Instance 
    hosts: local 
    connection: local 
    gather_facts: True 
    tags: provisioning 
    # Necessary Variables for creating/provisioning the EC2 Instance 
    vars: 
     instance_type: t2.micro 
     security_group: Webserver # Change the security group name here 
     image: amiID # Change the AMI, from which you want to launch the server 
     region: eu-central-1 # Change the Region 
     keypair: keypair # Change the keypair name 
     count: 1 

    # Task that will be used to Launch/Create an EC2 Instance 
    tasks: 
     - name: Launch the new EC2 Instance 
     local_action: ec2 
         group={{ security_group }} 
         instance_type={{ instance_type}} 
         image={{ image }} 
         wait=true 
         region={{ region }} 
         keypair={{ keypair }} 
         count={{count}} 
     register: ec2 

     - name: Add new instance to host group 
     add_host: hostname={{ item.public_ip }} groupname=launched 
     with_items: ec2.instances 

     - name: Wait for SSH to come up 
     local_action: wait_for 
         host={{ item.public_ip }} 
         port=22 
         state=started 
     with_items: ec2.instances 

     - name: Add tag to Instance(s) 
     local_action: ec2_tag resource={{ item.id }} region={{ region }} state=present 
     with_items: ec2.instances 
     args: 
      tags: 
      Name: webserver 

    - name: Install Nginx on this new instance 
    hosts: launched 
    become: yes 
    remote_user: ubuntu 
    tasks: 
     - name: Install Nginx 
     apt: pkg=nginx state=installed update_cache=true 
     notify: 
      - start nginx 

С последними анзибль обновлений, это вызывает некоторое предупреждение и потребует обновления PlayBook, но это текущая реализация я использовал для решения вышеуказанной проблемы , основываясь на комментариях.

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