tech:cloud_-_packer.io
Table des matières
Cloud - packer.io
Voir aussi :
Config
Prereq
~/.aws/config
[default] region = us-east-2 output = table
~/.aws/credentials
[default] aws_access_key_id = AKIAR5WS3MDOSPIUHRU7 aws_secret_access_key =
Exécution
packer/example.json
{ "variables": { "aws_access_key": "", "aws_secret_key": "" }, "provisioners": [{ "type": "ansible", "playbook_file": "../ansible/play-test.yml" }], "builders": [{ "type": "amazon-ebs", "access_key": "{{user `aws_access_key`}}", "secret_key": "{{user `aws_secret_key`}}", "region": "us-east-2", "source_ami_filter": { "filters": { "virtualization-type": "hvm", "name": "ubuntu/images/*ubuntu-xenial-16.04-amd64-server-*", "root-device-type": "ebs" }, "owners": ["099720109477"], "most_recent": true }, "instance_type": "t2.micro", "ssh_username": "ubuntu", "ami_name": "packer-example {{timestamp}}" }] }
ansible/play-test.yml
--- - name: test1 hosts: all become: true vars: ansible_python_interpreter: /usr/bin/python3 tasks: - name: plop shell: echo plop > /plop
packer validate example.json packer build example.json
Debug
packer build --debug example.json
Pour pouvoir se connecter en SSH sur l'instance.
"ssh_keypair_name": "nom_de_la_clef_presente_sur_aws", "ssh_private_key_file": "/home/admin/.ssh/id_rsa",
| ssh_keypair_name | Nom de la pair de clefs présente sur AWS. Utilisé par AWS pour créer l'instance |
| ssh_private_key_file | Chemin de la clef privée pour que Packer puisse se connecter sur l'instance |
Normalement seul ssh_username est nécessaire à la création de l'AMI.
Pour se connecter en SSH sur une instance déjà crée
$ ps -ef |grep ssh ssh -o ControlMaster=auto -o ControlPersist=30m -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -o Port=39087 -o IdentityFile="/tmp/ansible-key896233465" -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o User="admin" -o ConnectTimeout=10 -o ControlPath=/home/admin/.ansible/cp/d7af4b579b 127.0.0.1 /bin/sh
ssh admin@localhost -i /tmp/ansible-key896233465 -p 39087 /bin/bash ansible-playbook --extra-vars packer_build_name=amazon-ebs -e packer_builder_type=amazon-ebs -i /tmp/packer-provisioner-ansible966542596 /home/admin/workspace/Deploy_AMI_SCM_v2/905239-packebuild/ansible/playbook.yml -e ansible_ssh_private_key_file=/tmp/ansible-key896233465
tech/cloud_-_packer.io.txt · Dernière modification : de Jean-Baptiste
