My use-case is to run a playbook which installs Oracle JDK, GIT etc and 
"synchronize" a folder (say /home/ubuntu/abc) lying on my 
ansible-controller with ansible-host (at /tmp/abc).


Reading the documentation of ansible-remote 
<https://www.packer.io/docs/provisioners/ansible.html>, I thought using 
ansible provisioner would be good. But when I did that, to my surprise, the 
playbook was synchronizing the folder from /home/ubuntu/abc with /tmp/abc 
on the SAME MACHINE where I am running packer.


Is it possible that I can use machine running PACKER as ansible controller 
and use machine provisioned by packer as host?


Here is my packer.json:
{



"builders": [

{

"type": "amazon-ebs",

"access_key": "<<my_key_id>>",

"secret_key": "<<my_secret_key>>",

"ami_name": "CentOS 7 AMI by packer - {{timestamp}}",

"ami_description": "AMI created using packer",

"region": "us-west-2",

"source_ami": "ami-d2c924b2",

"instance_type": "t2.micro",

"ssh_username": "centos",

"user_data_file": "disable_tty.sh",

"ami_name": "packer-example-{{timestamp}}",

"tags": {

"Name": "web-nginx"

}

}

],

"provisioners": [

{

"type": "ansible",

"playbook_file": "ansible/install-binaries.yml",

"user": "centos",

"extra_arguments": ["-vvvv"],

"sftp_command": "/usr/libexec/openssh/sftp-server"

}

]

}


install-binaries.yml


---



- name: Install JAVA 1.8 if needed

  hosts: all

  become: true

  roles:

   - williamyeh.oracle-java




- name: Install git

  hosts: all

  become: true

  roles:

   - davidkarban.git

   

- name: Install rsync

  hosts: all

  become: true

  roles:

   - kbrebanov.rsync




- name: Copy my directory

  hosts: all

  become: true

  roles:


    - ABC.myrole




tasks/main.yml of role ABC.myrole


---


- name: Remove installation if exists

  file: path="{{deploy_dir}}" state="absent"




- name: Synchronize installation

  synchronize: src="{{src_dir}}/" dest="{{deploy_dir}}"




- name: Make shell scripts executable

  shell: "find ./ -name '*.sh' -exec chmod +x {} \\;"

  args:

    chdir: "{{deploy_dir}}"



disable_tty.sh

#!/bin/bash
sed -i '/Defaults \+requiretty/s/^/#/' /etc/sudoers



The variable values are:

deploy_dir: "/tmp/myDirectory"

src_dir: ".~/ansible/myDirectory" 


Directory structure:

/home/ubuntu/

-- packer.json

-- disable_tty.sh (Need this for "become: true" in playbook on CentOS 7 
image which I am using)

-- ansible

   -- roles (all the roles are inside this)

   -- install-binaries.yml

-- myDirectory

The task "Synchronize installation" takes too long (waited till 15 minutes 
and then stopped it !!!) and meanwhile, I observed there is myDirectory 
created in /tmp of the PACKER HOST (of course I can't check on host which 
PACKER is providing the temp instance it is in creation state)
The size of myDirectory is more than 550 MB and it contains a LOT of little 
files and binaries.

Machine I am running packer is Ubuntu 14.04
Source AMI is Centos 7 from its official website.

-- 
This mailing list is governed under the HashiCorp Community Guidelines - 
https://www.hashicorp.com/community-guidelines.html. Behavior in violation of 
those guidelines may result in your removal from this mailing list.

GitHub Issues: https://github.com/mitchellh/packer/issues
IRC: #packer-tool on Freenode
--- 
You received this message because you are subscribed to the Google Groups 
"Packer" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/packer-tool/20c9e82d-ef7a-4656-8b63-b91466cc2deb%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to