Autres images dans Ansible et GCE

J’essaie de créer une machine Ubuntu à partir du module gce dans Ansible, je suis capable de créer une machine debian-7 sans aucun problème avec le playbook suivant (changez l’image en “debian-7”:

- name: Create Compute Engine instances hosts: local gather_facts: no connection: local vars: names: webserver-sr01 machine_type: n1-standard-1 image: ubuntu-1404 zone: us-central1-a email: [email protected] pid: fakeproj pem: ~/Certs/somthing.pem tasks: - name: Launch instances gce: instance_names: "{{ names }}" machine_type: "{{ machine_type }}" image: "{{ image }}" service_account_email: "{{ email }}" pem_file: "{{ pem }}" project_id: "{{ pid }}" tags: docker-pubzilla-ws register: gce 

J’ai littéralement rencontré ce même problème il y a environ 3 semaines. Je suppose que vous avez installé la version de la bibliothèque libcloud qui est le problème. En effet, la version de publication ne prend pas encore en charge ubuntu, contrairement à la version de développement:

https://github.com/apache/libcloud/blob/trunk/libcloud/compute/drivers/gce.py

Recherchez “ubuntu” dans le fichier ci-dessus et vous verrez le conditionnel qui le recherche. Si vous le comparez au fichier gce.py qui se trouve dans votre local et qui était pour moi sous,

 /usr/local/lib/python2.7/dist-packages/libcloud/comput/drivers/gce.py 

vous verrez que Ubuntu n’est pas là.

Pour contourner ce problème, vous devez installer la version de développement détaillée ici:

https://libcloud.apache.org/getting-started.html

ce qui implique à peu près faire:

 pip install git+https://git-wip-us.apache.org/repos/asf/libcloud.git@trunk#egg=apache-libcloud 

Il est possible que pip détecte que libcloud est déjà installé, vous devrez peut-être d’abord supprimer votre version actuelle.

Plutôt que de fournir le nom de l’image, fournissez l’URL complète à l’image. Tu avais:

 image: ubuntu-1404 

Changez le pour:

 image: https://www.googleapis.com/compute/v1/projects/ubuntu-os-cloud/global/images/ubuntu-1404-trusty-v20150128 

vous pouvez utiliser les noms d’image mentionnés dans le cloud sdk , à savoir:

  1. centos-6
  2. centos-7
  3. conteneur-vm
  4. Coreos-stable
  5. Debian-7-Wheezy
  6. backports-debian-7-wheezy
  7. Debian-8-Jessie
  8. opensuse-13
  9. rhel-6
  10. rhel-7
  11. sles-11
  12. sles-12
  13. Ubuntu-1204-précis
  14. Ubuntu-1404-trusty
  15. Ubuntu-1410-utopic
  16. Ubuntu-1504-vivid
  17. windows-server-2008-r2
  18. windows-server-2012-r2