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 }