github.com/rstandt/terraform@v0.12.32-0.20230710220336-b1063613405c/builtin/provisioners/puppet/linux_provisioner.go (about)

     1  package puppet
     2  
     3  import (
     4  	"fmt"
     5  	"io"
     6  
     7  	"github.com/hashicorp/terraform/communicator/remote"
     8  )
     9  
    10  func (p *provisioner) linuxUploadFile(f io.Reader, dir string, filename string) error {
    11  	_, err := p.runCommand("mkdir -p " + dir)
    12  	if err != nil {
    13  		return fmt.Errorf("Failed to make directory %s: %s", dir, err)
    14  	}
    15  
    16  	err = p.comm.Upload("/tmp/"+filename, f)
    17  	if err != nil {
    18  		return fmt.Errorf("Failed to upload %s to /tmp: %s", filename, err)
    19  	}
    20  
    21  	_, err = p.runCommand(fmt.Sprintf("mv /tmp/%s %s/%s", filename, dir, filename))
    22  	return err
    23  }
    24  
    25  func (p *provisioner) linuxDefaultCertname() (string, error) {
    26  	certname, err := p.runCommand("hostname -f")
    27  	if err != nil {
    28  		return "", err
    29  	}
    30  
    31  	return certname, nil
    32  }
    33  
    34  func (p *provisioner) linuxInstallPuppetAgent() error {
    35  	_, err := p.runCommand(fmt.Sprintf("curl -kO https://%s:8140/packages/current/install.bash", p.Server))
    36  	if err != nil {
    37  		return err
    38  	}
    39  
    40  	_, err = p.runCommand("bash -- ./install.bash --puppet-service-ensure stopped")
    41  	if err != nil {
    42  		return err
    43  	}
    44  
    45  	_, err = p.runCommand("rm -f install.bash")
    46  	return err
    47  }
    48  
    49  func (p *provisioner) linuxRunPuppetAgent() error {
    50  	_, err := p.runCommand(fmt.Sprintf(
    51  		"/opt/puppetlabs/puppet/bin/puppet agent --test --server %s --environment %s",
    52  		p.Server,
    53  		p.Environment,
    54  	))
    55  
    56  	// Puppet exits 2 if changes have been successfully made.
    57  	if err != nil {
    58  		errStruct, _ := err.(*remote.ExitError)
    59  		if errStruct.ExitStatus == 2 {
    60  			return nil
    61  		}
    62  	}
    63  
    64  	return err
    65  }