Skip to content

Commit

Permalink
Merge pull request hashicorp#6107 from thedrow/ansible-custom-invento…
Browse files Browse the repository at this point in the history
…ry-file

Allow Ansible to use a custom inventory file
  • Loading branch information
SwampDragons authored Apr 5, 2018
2 parents cfbe026 + c0719a3 commit 078434c
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 6 deletions.
10 changes: 5 additions & 5 deletions provisioner/ansible/provisioner.go
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ type Config struct {
SkipVersionCheck bool `mapstructure:"skip_version_check"`
UseSFTP bool `mapstructure:"use_sftp"`
InventoryDirectory string `mapstructure:"inventory_directory"`
inventoryFile string
InventoryFile string `mapstructure:"inventory_file"`
}

type Provisioner struct {
Expand Down Expand Up @@ -266,7 +266,7 @@ func (p *Provisioner) Provision(ui packer.Ui, comm packer.Communicator) error {

go p.adapter.Serve()

if len(p.config.inventoryFile) == 0 {
if len(p.config.InventoryFile) == 0 {
tf, err := ioutil.TempFile(p.config.InventoryDirectory, "packer-provisioner-ansible")
if err != nil {
return fmt.Errorf("Error preparing inventory file: %s", err)
Expand Down Expand Up @@ -295,9 +295,9 @@ func (p *Provisioner) Provision(ui packer.Ui, comm packer.Communicator) error {
return fmt.Errorf("Error preparing inventory file: %s", err)
}
tf.Close()
p.config.inventoryFile = tf.Name()
p.config.InventoryFile = tf.Name()
defer func() {
p.config.inventoryFile = ""
p.config.InventoryFile = ""
}()
}

Expand All @@ -320,7 +320,7 @@ func (p *Provisioner) Cancel() {

func (p *Provisioner) executeAnsible(ui packer.Ui, comm packer.Communicator, privKeyFile string) error {
playbook, _ := filepath.Abs(p.config.PlaybookFile)
inventory := p.config.inventoryFile
inventory := p.config.InventoryFile
if len(p.config.InventoryDirectory) > 0 {
inventory = p.config.InventoryDirectory
}
Expand Down
7 changes: 6 additions & 1 deletion website/source/docs/provisioners/ansible.html.md
Original file line number Diff line number Diff line change
Expand Up @@ -81,8 +81,13 @@ Optional Parameters:
should be placed. When unspecified, the host is not associated with any
groups.

- `inventory_file` (string) - The inventory file to use during provisioning.
When unspecified, Packer will create a temporary inventory file and will
use the `host_alias`.

- `host_alias` (string) - The alias by which the Ansible host should be known.
Defaults to `default`.
Defaults to `default`. This setting is ignored when using a custom inventory
file.

- `inventory_directory` (string) - The directory in which to place the
temporary generated Ansible inventory file. By default, this is the
Expand Down

0 comments on commit 078434c

Please sign in to comment.