5

Ansible プレイブックを使用して、AWS でインフラストラクチャをプロビジョニングしようとしています。私はインスタンスを持っており、docker-engine、docker-py などをプロビジョニングできます。そして、昨日これが正しく機能し、それ以来コードを変更していないことを誓います。

私のプレイブックの関連部分は次のとおりです。

- name: Ensure AWS CLI is available
  pip:
    name: awscli
    state: present
  when: aws_deploy
- block:
  - name: Add .boto file with AWS credentials.
    copy:
      content: "{{ boto_file }}"
      dest: ~/.boto
    when: aws_deploy
  - name: Log in to docker registry.
    shell: "$(aws ecr get-login --region us-east-1)"
    when: aws_deploy
  - name: Remove .boto file with AWS credentials.
    file:
      path: ~/.boto
      state: absent
    when: aws_deploy
  - name: Create docker network
    docker_network:
      name: my-net
  - name: Start Container
    docker_container:
      name: example
      image: "{{ docker_registry }}/example"
      pull: true
      restart: true
      network_mode: host
      volumes:
        - /etc/localtime:/etc/localtime:ro
        - /etc/timezone:/etc/timezone

{{ docker_registry }}はに設定されてmy-acct-id.dkr.ecr.us-east-1.amazonaws.comおり、得られる結果は次のとおりです。

"msg": "Error pulling my-acct-id.dkr.ecr.us-east-1.amazonaws.com/example - code: None message: Get http://: http: no Host in request URL"

ただし、前述のように、これは昨夜正しく機能しました。それ以来、VPC/サブネットにいくつかの変更を加えましたが、インスタンスに ssh でき、docker pull my-acct-id.dkr.ecr.us-east-1.amazonaws.com/example問題なく実行できます。

同じエラーを抱えている他の人を見つけることができないように見えるので、グーグルは私をそれほど遠くまで導きませんでした。何が変わったのか、どうすれば直せるのか気になります!ありがとう!

編集: バージョン:

  • アンシブル-2.2.0.0
  • ドッカー-1.12.3 6b644ec
  • ドッカー-py-1.10.6
4

1 に答える 1