0

私は、アシスタブル、アネイアブルタワー、およびAWSクラウドフォーメーションを初めて使用しています。また、クラウドフォーメーションテンプレートを使用してEC2コンテナサービスを配備しようとしています。私はデプロイジョブを実行しようとしており、このエラーが発生しています。アブサイドタワーを使用してAWSにクラウドインフォメーションスタックを展開する

TASK [create/update stack] ***************************************************** 
    task path: /var/lib/awx/projects/_6__api/tasks/create_stack.yml:2 
    <127.0.0.1> ESTABLISH LOCAL CONNECTION FOR USER: awx 
    <127.0.0.1> EXEC /bin/sh -c '(umask 77 && mkdir -p "` echo   $HOME/.ansible/tmp/ansible-tmp-1470427494.79-207756006727790 `" && echo ansible-tmp-1470427494.79-207756006727790="` echo $HOME/.ansible/tmp/ansible-tmp-1470427494.79-207756006727790 `") && sleep 0' 
<127.0.0.1> PUT /tmp/tmpgAsKKv TO /var/lib/awx/.ansible/tmp/ansible-tmp-1470427494.79-207756006727790/cloudformation 
<127.0.0.1> EXEC /bin/sh -c 'sudo -H -S -n -u root /bin/sh -c '"'"'echo BECOME-SUCCESS-coqlkeqywlqhagfixtfpfotjgknremaw; LANG=en_US.UTF-8 LC_ALL=en_US.UTF-8 AWS_DEFAULT_REGION=us-west-2 LC_MESSAGES=en_US.UTF-8 /usr/bin/python /var/lib/awx/.ansible/tmp/ansible-tmp-1470427494.79-207756006727790/cloudformation; rm -rf "/var/lib/awx/.ansible/tmp/ansible-tmp-1470427494.79-207756006727790/" > /dev/null 2>&1'"'"' && sleep 0' 
fatal: [localhost]: FAILED! => {"changed": false, "failed": true, "invocation": {"module_name": "cloudformation"}, "module_stderr": "/bin/sh: /usr/bin/sudo: Permission denied\n", "module_stdout": "", "msg": "MODULE FAILURE", "parsed": false} 

これは、作成/更新タスクである:これは何を私の脚本のフォルダ構造のルックスで

--- 
- name: Deployment Playbook 
    hosts: localhost 
    connection: local 
    gather_facts: no 
    environment: 
    AWS_DEFAULT_REGION: "{{ lookup('env', 'AWS_DEFAULT_REGION') | default('us-west-2', true) }}" 
    tasks: 
    - include: tasks/create_stack.yml 
    - include: tasks/deploy_app.yml 

:Ansibleタワーが実行する脚本がsite.ymlファイルです

--- 
- name: create/update stack 
    cloudformation: 
    stack_name: my-stack 
    state: present 
    template: templates/stack.yml 
    template_format: yaml 
    template_parameters: 
     VpcId: "{{ vpc_id }}" 
     SubnetId: "{{ subnet_id }}" 
     KeyPair: "{{ ec2_keypair }}" 
     DbUsername: "{{ db_username }}" 
     DbPassword: "{{ db_password }}" 
     InstanceCount: "{{ instance_count | default(1) }}" 
    tags: 
    Environment: test 
    register: cf_stack 

- debug: msg={{ cf_stack }} 
    when: debug is defined 

like:

/deploy 
    /group_vars 
     all 
    /library 
     aws_ecs_service.py 
     aws_ecs_task.py 
     aws_ecs_taskdefinition.py 
    /tasks 
     stack.yml 
    /templates 
     site.yml 

私はジャスティン・メンガの複数形のコース「DockerとAnsibleを使った継続的な配達」にすべてを載せていますが、おそらく切断されているAnsible TowerではなくJenkinsを使用しています。とにかく、十分に情報があれば、stack.ymlファイルも提供する必要があるかどうか教えてください。ライブラリディレクトリの下のファイルは、ビデオコースのMengaのカスタマイズされたモジュールです。

このすべてと潜在的な助けをお読みいただきありがとうございます!これは彼の配備したプレイブックリポジトリへのリンクであり、その後はすべてhttps://github.com/jmenga/todobackend-deployのすべてをモデル化しました。私が取り出したものはDB RDSのものです。

+1

'--become'や' -b'(または古い '--sudo'や' -s')でAniableを実行していますか?それは特権を昇格しようとしているように見えます。この作業はまったく昇格する必要はありません(実際には、AWS資格情報があなたのユーザープロファイルにあり、rootのものではない場合に問題を引き起こす可能性があります) – ydaetskcoR

+0

@ydaetskcoR、これを回答でありコメントではなく、答えとしてそれを受け入れるでしょう。問題は、ジョブテンプレートで「特権エスカレーションを有効にする」がチェックされていることでした。本当にありがとう! – Justin

答えて

1

あなたは権限を昇格しようとしたが失敗していることがわかりますエラーメッセージの最後の二つの行を見れば:これは、ルートへの切り替えをしようとしているローカルタスクであるため

<127.0.0.1> EXEC /bin/sh -c 'sudo -H -S -n -u root /bin/sh -c '"'"'echo BECOME-SUCCESS-coqlkeqywlqhagfixtfpfotjgknremaw; LANG=en_US.UTF-8 LC_ALL=en_US.UTF-8 AWS_DEFAULT_REGION=us-west-2 LC_MESSAGES=en_US.UTF-8 /usr/bin/python /var/lib/awx/.ansible/tmp/ansible-tmp-1470427494.79-207756006727790/cloudformation; rm -rf "/var/lib/awx/.ansible/tmp/ansible-tmp-1470427494.79-207756006727790/" > /dev/null 2>&1'"'"' && sleep 0' 
fatal: [localhost]: FAILED! => {"changed": false, "failed": true, "invocation": {"module_name": "cloudformation"}, "module_stderr": "/bin/sh: /usr/bin/sudo: Permission denied\n", "module_stdout": "", "msg": "MODULE FAILURE", "parsed": false} 

Anoys Towerが稼動しているボックスにユーザーがいて、ユーザーがこれを行う特権を持っていない(と理由がある)と思われる場合があります。

普通これは、コマンドラインで--becomeまたは-bフラグを指定しないか、タスク/プレイ定義でbecome: falseを指定することで回避できます。

あなたがコメントで指摘したように、Ansible Towerでは、ジョブテンプレートの「権限昇格を有効にする」オプションを解除する場合があります。

関連する問題