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: