mixlib-install 3.9.0 → 3.9.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (113) hide show
  1. checksums.yaml +5 -5
  2. data/lib/mixlib/install/options.rb +1 -1
  3. data/lib/mixlib/install/version.rb +1 -1
  4. data/mixlib-install.gemspec +1 -1
  5. metadata +3 -112
  6. data/.expeditor/config.yml +0 -20
  7. data/.expeditor/update_version.sh +0 -9
  8. data/.gitattributes +0 -3
  9. data/.github/CODEOWNERS +0 -3
  10. data/.gitignore +0 -13
  11. data/.rspec +0 -2
  12. data/.rubocop.yml +0 -2
  13. data/.travis.yml +0 -61
  14. data/CHANGELOG.md +0 -220
  15. data/CONTRIBUTING.md +0 -14
  16. data/VERSION +0 -1
  17. data/acceptance/.gitignore +0 -8
  18. data/acceptance/.suites/ubuntu_install_checksum/.acceptance/acceptance-cookbook/.gitignore +0 -8
  19. data/acceptance/.suites/ubuntu_install_checksum/.acceptance/acceptance-cookbook/metadata.rb +0 -2
  20. data/acceptance/.suites/ubuntu_install_checksum/.acceptance/acceptance-cookbook/recipes/destroy.rb +0 -3
  21. data/acceptance/.suites/ubuntu_install_checksum/.acceptance/acceptance-cookbook/recipes/provision.rb +0 -24
  22. data/acceptance/.suites/ubuntu_install_checksum/.acceptance/acceptance-cookbook/recipes/verify.rb +0 -11
  23. data/acceptance/.suites/ubuntu_install_checksum/inspec/verify.rb +0 -78
  24. data/acceptance/.suites/ubuntu_install_checksum/terraform/application.tf +0 -95
  25. data/acceptance/.suites/ubuntu_install_checksum/terraform/aws.tf +0 -8
  26. data/acceptance/.suites/ubuntu_install_checksum/terraform/variables.tf +0 -27
  27. data/acceptance/.suites/windows-nano/.acceptance/acceptance-cookbook/.gitignore +0 -2
  28. data/acceptance/.suites/windows-nano/.acceptance/acceptance-cookbook/libraries/chef_extentions.rb +0 -74
  29. data/acceptance/.suites/windows-nano/.acceptance/acceptance-cookbook/metadata.rb +0 -2
  30. data/acceptance/.suites/windows-nano/.acceptance/acceptance-cookbook/recipes/destroy.rb +0 -1
  31. data/acceptance/.suites/windows-nano/.acceptance/acceptance-cookbook/recipes/provision.rb +0 -49
  32. data/acceptance/.suites/windows-nano/.acceptance/acceptance-cookbook/recipes/verify.rb +0 -9
  33. data/acceptance/.suites/windows-nano/inspec/verify.rb +0 -11
  34. data/acceptance/.suites/windows-nano/terraform/application.tf +0 -59
  35. data/acceptance/.suites/windows-nano/terraform/aws.tf +0 -8
  36. data/acceptance/.suites/windows-nano/terraform/variables.tf +0 -10
  37. data/acceptance/Gemfile +0 -8
  38. data/acceptance/README.md +0 -6
  39. data/acceptance/centos_install_checksum/.acceptance/acceptance-cookbook/.gitignore +0 -8
  40. data/acceptance/centos_install_checksum/.acceptance/acceptance-cookbook/metadata.rb +0 -2
  41. data/acceptance/centos_install_checksum/.acceptance/acceptance-cookbook/recipes/destroy.rb +0 -3
  42. data/acceptance/centos_install_checksum/.acceptance/acceptance-cookbook/recipes/provision.rb +0 -24
  43. data/acceptance/centos_install_checksum/.acceptance/acceptance-cookbook/recipes/verify.rb +0 -11
  44. data/acceptance/centos_install_checksum/inspec/verify.rb +0 -78
  45. data/acceptance/centos_install_checksum/terraform/application.tf +0 -95
  46. data/acceptance/centos_install_checksum/terraform/aws.tf +0 -8
  47. data/acceptance/centos_install_checksum/terraform/variables.tf +0 -27
  48. data/acceptance/ubuntu_install_command/.acceptance/acceptance-cookbook/.gitignore +0 -8
  49. data/acceptance/ubuntu_install_command/.acceptance/acceptance-cookbook/metadata.rb +0 -2
  50. data/acceptance/ubuntu_install_command/.acceptance/acceptance-cookbook/recipes/destroy.rb +0 -3
  51. data/acceptance/ubuntu_install_command/.acceptance/acceptance-cookbook/recipes/provision.rb +0 -12
  52. data/acceptance/ubuntu_install_command/.acceptance/acceptance-cookbook/recipes/verify.rb +0 -11
  53. data/acceptance/ubuntu_install_command/inspec/verify.rb +0 -3
  54. data/acceptance/ubuntu_install_command/terraform/application.tf +0 -78
  55. data/acceptance/ubuntu_install_command/terraform/aws.tf +0 -8
  56. data/acceptance/ubuntu_install_command/terraform/variables.tf +0 -27
  57. data/acceptance/ubuntu_install_command_once/.acceptance/acceptance-cookbook/.gitignore +0 -8
  58. data/acceptance/ubuntu_install_command_once/.acceptance/acceptance-cookbook/metadata.rb +0 -2
  59. data/acceptance/ubuntu_install_command_once/.acceptance/acceptance-cookbook/recipes/destroy.rb +0 -3
  60. data/acceptance/ubuntu_install_command_once/.acceptance/acceptance-cookbook/recipes/provision.rb +0 -12
  61. data/acceptance/ubuntu_install_command_once/.acceptance/acceptance-cookbook/recipes/verify.rb +0 -11
  62. data/acceptance/ubuntu_install_command_once/inspec/verify.rb +0 -7
  63. data/acceptance/ubuntu_install_command_once/terraform/application.tf +0 -78
  64. data/acceptance/ubuntu_install_command_once/terraform/aws.tf +0 -8
  65. data/acceptance/ubuntu_install_command_once/terraform/variables.tf +0 -27
  66. data/acceptance/ubuntu_install_sh/.acceptance/acceptance-cookbook/.gitignore +0 -8
  67. data/acceptance/ubuntu_install_sh/.acceptance/acceptance-cookbook/metadata.rb +0 -2
  68. data/acceptance/ubuntu_install_sh/.acceptance/acceptance-cookbook/recipes/destroy.rb +0 -3
  69. data/acceptance/ubuntu_install_sh/.acceptance/acceptance-cookbook/recipes/provision.rb +0 -12
  70. data/acceptance/ubuntu_install_sh/.acceptance/acceptance-cookbook/recipes/verify.rb +0 -11
  71. data/acceptance/ubuntu_install_sh/inspec/verify.rb +0 -3
  72. data/acceptance/ubuntu_install_sh/terraform/application.tf +0 -78
  73. data/acceptance/ubuntu_install_sh/terraform/aws.tf +0 -8
  74. data/acceptance/ubuntu_install_sh/terraform/variables.tf +0 -27
  75. data/acceptance/windows-server-2012r2-checksum/.acceptance/acceptance-cookbook/.gitignore +0 -2
  76. data/acceptance/windows-server-2012r2-checksum/.acceptance/acceptance-cookbook/metadata.rb +0 -2
  77. data/acceptance/windows-server-2012r2-checksum/.acceptance/acceptance-cookbook/recipes/destroy.rb +0 -3
  78. data/acceptance/windows-server-2012r2-checksum/.acceptance/acceptance-cookbook/recipes/provision.rb +0 -22
  79. data/acceptance/windows-server-2012r2-checksum/.acceptance/acceptance-cookbook/recipes/verify.rb +0 -14
  80. data/acceptance/windows-server-2012r2-checksum/inspec/verify.rb +0 -21
  81. data/acceptance/windows-server-2012r2-checksum/terraform/application.tf +0 -94
  82. data/acceptance/windows-server-2012r2-checksum/terraform/aws.tf +0 -8
  83. data/acceptance/windows-server-2012r2-checksum/terraform/variables.tf +0 -16
  84. data/acceptance/windows-server-2012r2-fips/.acceptance/acceptance-cookbook/.gitignore +0 -2
  85. data/acceptance/windows-server-2012r2-fips/.acceptance/acceptance-cookbook/metadata.rb +0 -1
  86. data/acceptance/windows-server-2012r2-fips/.acceptance/acceptance-cookbook/recipes/destroy.rb +0 -3
  87. data/acceptance/windows-server-2012r2-fips/.acceptance/acceptance-cookbook/recipes/provision.rb +0 -12
  88. data/acceptance/windows-server-2012r2-fips/.acceptance/acceptance-cookbook/recipes/verify.rb +0 -14
  89. data/acceptance/windows-server-2012r2-fips/inspec/verify.rb +0 -3
  90. data/acceptance/windows-server-2012r2-fips/terraform/application.tf +0 -90
  91. data/acceptance/windows-server-2012r2-fips/terraform/aws.tf +0 -8
  92. data/acceptance/windows-server-2012r2-fips/terraform/variables.tf +0 -16
  93. data/acceptance/windows-server-2012r2-once/.acceptance/acceptance-cookbook/.gitignore +0 -2
  94. data/acceptance/windows-server-2012r2-once/.acceptance/acceptance-cookbook/metadata.rb +0 -2
  95. data/acceptance/windows-server-2012r2-once/.acceptance/acceptance-cookbook/recipes/destroy.rb +0 -3
  96. data/acceptance/windows-server-2012r2-once/.acceptance/acceptance-cookbook/recipes/provision.rb +0 -13
  97. data/acceptance/windows-server-2012r2-once/.acceptance/acceptance-cookbook/recipes/verify.rb +0 -14
  98. data/acceptance/windows-server-2012r2-once/inspec/verify.rb +0 -7
  99. data/acceptance/windows-server-2012r2-once/terraform/application.tf +0 -89
  100. data/acceptance/windows-server-2012r2-once/terraform/aws.tf +0 -8
  101. data/acceptance/windows-server-2012r2-once/terraform/variables.tf +0 -16
  102. data/acceptance/windows-server-2012r2-ps1/.acceptance/acceptance-cookbook/.gitignore +0 -2
  103. data/acceptance/windows-server-2012r2-ps1/.acceptance/acceptance-cookbook/metadata.rb +0 -2
  104. data/acceptance/windows-server-2012r2-ps1/.acceptance/acceptance-cookbook/recipes/destroy.rb +0 -3
  105. data/acceptance/windows-server-2012r2-ps1/.acceptance/acceptance-cookbook/recipes/provision.rb +0 -12
  106. data/acceptance/windows-server-2012r2-ps1/.acceptance/acceptance-cookbook/recipes/verify.rb +0 -14
  107. data/acceptance/windows-server-2012r2-ps1/inspec/verify.rb +0 -3
  108. data/acceptance/windows-server-2012r2-ps1/terraform/application.tf +0 -89
  109. data/acceptance/windows-server-2012r2-ps1/terraform/aws.tf +0 -8
  110. data/acceptance/windows-server-2012r2-ps1/terraform/variables.tf +0 -16
  111. data/ci/before-script.sh +0 -18
  112. data/ci/es-infrastructure.pem.enc +0 -0
  113. data/ci/run-acceptance-tests.sh +0 -13
data/CONTRIBUTING.md DELETED
@@ -1,14 +0,0 @@
1
- This project is maintained by the contribution guidelines identified for
2
- [chef](https://github.com/chef/chef) project. You can find the guidelines here:
3
-
4
- https://github.com/chef/chef/blob/master/CONTRIBUTING.md
5
-
6
- Pull requests in this project are merged when they have two :+1:s from maintainers.
7
-
8
- ## Maintainers
9
-
10
-
11
- - [Thom May](https://github.com/thommay)
12
- - [Patrick Wright](https://github.com/patrick-wright)
13
- - [Serdar Sutay](https://github.com/sersut)
14
- - [Seth Chisamore](https://github.com/schisamo)
data/VERSION DELETED
@@ -1 +0,0 @@
1
- 3.9.0
@@ -1,8 +0,0 @@
1
- /Gemfile.lock
2
- /.acceptance_data/
3
-
4
- # Terraform
5
- *.tfstate
6
- *.tfstate.backup
7
- *_override.tf
8
-
@@ -1,8 +0,0 @@
1
- nodes/
2
- tmp/
3
-
4
- # Terraform
5
- *.tfstate
6
- *.tfstate.backup
7
- *_override.tf
8
-
@@ -1,3 +0,0 @@
1
- execute "terraform destroy -force" do
2
- cwd "#{node['chef-acceptance']['suite-dir']}/terraform"
3
- end
@@ -1,24 +0,0 @@
1
- # Generate install script then write to disk for terraform to copy to the instance for execution
2
- execute "bundle exec ruby -e \"require 'mixlib/install'; puts Mixlib::Install.new(product_name: 'chef', product_version: :latest, channel: :stable, install_command_options: {download_url_override: 'https://packages.chef.io/files/stable/chef/13.2.20/ubuntu/14.04/chef_13.2.20-1_amd64.deb', cmdline_dl_dir: '/tmp/checksum'}).install_command\" > ../.acceptance_data/ubuntu_install_url.sh" do
3
- cwd node['chef-acceptance']['suite-dir']
4
- end
5
-
6
- execute "bundle exec ruby -e \"require 'mixlib/install'; puts Mixlib::Install.new(product_name: 'chef', product_version: :latest, channel: :stable, install_command_options: {download_url_override: 'https://packages.chef.io/files/stable/chef/13.2.20/ubuntu/14.04/chef_13.2.20-1_amd64.deb', checksum: '88cd274a694bfe23d255937794744d50af972097958fa681a544479e2bfb7f6b', cmdline_dl_dir: '/tmp/checksum'}).install_command\" > ../.acceptance_data/ubuntu_install_checksum.sh" do
7
- cwd node['chef-acceptance']['suite-dir']
8
- end
9
-
10
- execute "bundle exec ruby -e \"require 'mixlib/install'; puts Mixlib::Install.new(product_name: 'chef', product_version: :latest, channel: :stable, install_command_options: {cmdline_dl_dir: '/tmp/metadata'}).install_command\" > ../.acceptance_data/ubuntu_install_metadata.sh" do
11
- cwd node['chef-acceptance']['suite-dir']
12
- end
13
-
14
- execute "bundle exec ruby -e \"require 'mixlib/install'; puts Mixlib::Install.new(product_name: 'chef', product_version: :latest, channel: :stable, install_command_options: {download_url_override: 'https://packages.chef.io/files/stable/chef/13.2.20/ubuntu/14.04/chef_13.2.20-1_amd64.deb', checksum: 'FOOOOOOOOOOOOOO', cmdline_dl_dir: '/tmp/bad'}).install_command\" > ../.acceptance_data/ubuntu_install_bad.sh" do
15
- cwd node['chef-acceptance']['suite-dir']
16
- end
17
-
18
- execute "terraform plan" do
19
- cwd "#{node['chef-acceptance']['suite-dir']}/terraform"
20
- end
21
-
22
- execute "terraform apply" do
23
- cwd "#{node['chef-acceptance']['suite-dir']}/terraform"
24
- end
@@ -1,11 +0,0 @@
1
- ruby_block "get ip" do
2
- block do
3
- tf_state = JSON.parse(File.read("#{node['chef-acceptance']['suite-dir']}/terraform/terraform.tfstate"))
4
- node.default["ip"] = tf_state["modules"].first["resources"]["aws_instance.mixlib_install_sh"]["primary"]["attributes"]["public_ip"]
5
- end
6
- end
7
-
8
- execute "run inspec" do
9
- command lazy { "inspec exec verify.rb -t ssh://ubuntu@#{node['ip']} -i ~/.ssh/es-infrastructure.pem" }
10
- cwd "#{node['chef-acceptance']['suite-dir']}/inspec"
11
- end
@@ -1,78 +0,0 @@
1
- # Uncomment when re-running for local development
2
- describe command("sudo rm -rf /tmp/metadata /tmp/checksum /tmp/bad; sudo dpkg -r chef") do
3
- its("exit_status") { should eq 0 }
4
- end
5
-
6
- #
7
- # DOWNLOAD URL TESTS
8
- #
9
- # No checksum provided
10
- describe command("sudo /tmp/install.sh") do
11
- its("stdout") { should match /Download URL override specified/ }
12
- its("stdout") { should match /tmp\/checksum\/chef.* not found/ }
13
- its("stdout") { should match /Thank you/ }
14
- end
15
-
16
- # Running same script again
17
- describe command("sudo /tmp/install.sh") do
18
- its("stdout") { should match /Download URL override specified/ }
19
- its("stdout") { should match /Verifying local file/ }
20
- its("stdout") { should match /Checksum not specified/ }
21
- its("stdout") { should match /Thank you/ }
22
- end
23
-
24
- # Now with a valid checksum
25
- describe command("sudo /tmp/install_checksum.sh") do
26
- its("stdout") { should match /Download URL override specified/ }
27
- its("stdout") { should match /Verifying local file/ }
28
- its("stdout") { should match /Checksum match/ }
29
- its("stdout") { should match /Thank you/ }
30
- end
31
-
32
- # Corrupt the file we just downloaded
33
- describe command("sudo chown ubuntu /tmp/checksum; sudo chown ubuntu /tmp/checksum/*; for i in /tmp/checksum/*; do echo 'oops'>>$i; done;") do
34
- its("exit_status") { should eq 0 }
35
- end
36
-
37
- # Run with checksum and it should download and re-verify the checksum
38
- describe command("sudo /tmp/install_checksum.sh") do
39
- its("stdout") { should match /Download URL override specified/ }
40
- its("stdout") { should match /Verifying local file/ }
41
- its("stdout") { should match /Checksum mismatch/ }
42
- its("stdout") { should match /Thank you/ }
43
- end
44
-
45
- # clean up
46
- describe command("sudo dpkg -r chef") do
47
- its("stdout") { should match /Removing chef/ }
48
- end
49
-
50
- #
51
- # METADATA URL TESTS
52
- #
53
- # Default behavior when specifying a download location (otherwise caching is unavailable)
54
- describe command("sudo /tmp/install_metadata.sh") do
55
- its("stdout") { should_not match /tmp\/metadata\/chef.* exists/ }
56
- its("stdout") { should match /Thank you/ }
57
- end
58
-
59
- # Running same script again
60
- describe command("sudo /tmp/install_metadata.sh") do
61
- its("stdout") { should match /tmp\/metadata\/chef.* exists/ }
62
- its("stdout") { should match /Thank you/ }
63
- end
64
-
65
- # clean up
66
- describe command("sudo dpkg -r chef") do
67
- its("stdout") { should match /Removing chef/ }
68
- end
69
-
70
- #
71
- # DOWNLOAD URL BAD CHECKSUM TESTS
72
- #
73
- describe command("sudo /tmp/install_bad.sh") do
74
- its("stdout") { should match /Download URL override specified/ }
75
- its("stdout") { should match /tmp\/bad\/chef.* not found/ }
76
- its("stdout") { should match /Package checksum mismatch/ }
77
- its("exit_status") { should eq 1 }
78
- end
@@ -1,95 +0,0 @@
1
- data "aws_ami" "ubuntu_14_ami" {
2
- most_recent = true
3
-
4
- filter {
5
- name = "owner-id"
6
- values = ["099720109477"]
7
- }
8
-
9
- filter {
10
- name = "name"
11
- values = ["ubuntu/images/*/ubuntu-*-14.04-*-server-*"]
12
- }
13
-
14
- filter {
15
- name = "architecture"
16
- values = ["x86_64"]
17
- }
18
-
19
- filter {
20
- name = "virtualization-type"
21
- values = ["hvm"]
22
- }
23
-
24
- filter {
25
- name = "block-device-mapping.volume-type"
26
- values = ["standard"]
27
- }
28
-
29
- filter {
30
- name = "image-type"
31
- values = ["machine"]
32
- }
33
- }
34
-
35
- resource "aws_instance" "mixlib_install_sh" {
36
- count = 1
37
-
38
- ami = "${data.aws_ami.ubuntu_14_ami.id}"
39
- instance_type = "${var.aws_instance_type}"
40
- key_name = "es-infrastructure"
41
-
42
- associate_public_ip_address = true
43
-
44
- subnet_id = "subnet-11ac0174" # Planet Releng Public Subnet
45
- source_dest_check = false
46
-
47
- vpc_security_group_ids = [
48
- "sg-96274af3",
49
- ]
50
-
51
- connection {
52
- user = "ubuntu"
53
- private_key = "${file("${var.connection_private_key}")}"
54
- agent = "${var.connection_agent}"
55
- timeout = "10m"
56
- }
57
-
58
- tags {
59
- # ChefOps's AWS standard tags:
60
- X-Dept = "EngServ"
61
- X-Contact = "pwright"
62
- X-Production = "false"
63
- X-Environment = "acceptance"
64
- X-Application = "mixlib-install"
65
- }
66
-
67
- provisioner "file" {
68
- source = "../../.acceptance_data/ubuntu_install_url.sh"
69
- destination = "/tmp/install.sh"
70
- }
71
-
72
- provisioner "file" {
73
- source = "../../.acceptance_data/ubuntu_install_checksum.sh"
74
- destination = "/tmp/install_checksum.sh"
75
- }
76
-
77
- provisioner "file" {
78
- source = "../../.acceptance_data/ubuntu_install_metadata.sh"
79
- destination = "/tmp/install_metadata.sh"
80
- }
81
-
82
- provisioner "file" {
83
- source = "../../.acceptance_data/ubuntu_install_bad.sh"
84
- destination = "/tmp/install_bad.sh"
85
- }
86
-
87
- provisioner "remote-exec" {
88
- inline = [
89
- "chmod +x /tmp/install.sh",
90
- "chmod +x /tmp/install_checksum.sh",
91
- "chmod +x /tmp/install_metadata.sh",
92
- "chmod +x /tmp/install_bad.sh",
93
- ]
94
- }
95
- }
@@ -1,8 +0,0 @@
1
- # Restrict operation of terraform to chef-es profile so that
2
- # we do not create resources in other aws profiles.
3
- # We assume user has configured standard aws credentials
4
- # under ~/.aws/credentials or with $AWS_SHARED_CREDENTIALS_FILE
5
- provider "aws" {
6
- region = "${var.aws_region}"
7
- profile = "chef-aws"
8
- }
@@ -1,27 +0,0 @@
1
- # Region to create infrastructure in
2
- variable "aws_region" {
3
- type = "string"
4
- default = "us-west-2"
5
- }
6
-
7
- variable "aws_instance_type" {
8
- type = "string"
9
- default = "t2.micro"
10
- }
11
-
12
- # Used to indicidate whether the environment should be treated as "prod"
13
- # This is mainly used for the `X-Production` AWS tag.
14
- variable "production" {
15
- default = "false"
16
- }
17
-
18
- # SSH Connection info used for remote provisioning instances
19
- variable "connection_agent" {
20
- description = "Set to false to disable using ssh-agent to authenticate"
21
- default = false
22
- }
23
-
24
- variable "connection_private_key" {
25
- description = "File path to AWS keypair private key to provision with"
26
- default = "~/.ssh/es-infrastructure.pem"
27
- }
@@ -1,74 +0,0 @@
1
- class Chef
2
- class Recipe
3
- def run_tf(command)
4
- execute "terraform #{command}" do
5
- cwd "#{node['chef-acceptance']['suite-dir']}/terraform"
6
- end
7
- end
8
- end
9
-
10
- class Resource
11
- def instance_ip
12
- @instance_ip ||= tf_state["modules"].first["resources"]["aws_instance.windows_server_nano_ami"]["primary"]["attributes"]["public_ip"]
13
- end
14
-
15
- def instance_id
16
- @instance_id ||= tf_state["modules"].first["resources"]["aws_instance.windows_server_nano_ami"]["primary"]["id"]
17
- end
18
-
19
- def windows_password
20
- @windows_password ||= begin
21
- require "aws-sdk"
22
-
23
- ec2 = Aws::EC2::Resource.new
24
- instance = ec2.instance(instance_id)
25
- instance.wait_until_running
26
-
27
- # AWS periodically needs more time to retrieve the windows password. Retry.
28
- time = 3 * 60 # try up to 3 minutes
29
- interval = 5 # every 5 seconds
30
- tries = time / interval
31
- begin
32
- password = instance.decrypt_windows_password("#{ENV['HOME']}/.ssh/es-infrastructure.pem")
33
- rescue RuntimeError => e
34
- if e.message =~ /password not available yet/
35
- unless (tries -= 1).zero?
36
- sleep interval
37
- retry
38
- end
39
- else
40
- raise e
41
- end
42
- end
43
-
44
- password
45
- end
46
- end
47
-
48
- def run_shell(script, type = :powershell)
49
- require "winrm"
50
-
51
- opts = {
52
- endpoint: "http://#{instance_ip}:5985/wsman",
53
- user: "Administrator",
54
- password: windows_password
55
- }
56
-
57
- conn = WinRM::Connection.new(opts)
58
-
59
- conn.shell(type) do |shell|
60
- output = shell.run(script) do |stdout, stderr|
61
- STDOUT.print stdout
62
- STDERR.print stderr
63
- end
64
- Chef::Log.info "The script exited with exit code #{output.exitcode}"
65
- end
66
- end
67
-
68
- private
69
-
70
- def tf_state
71
- @tfstate ||= JSON.parse(::File.read("#{node['chef-acceptance']['suite-dir']}/terraform/terraform.tfstate"))
72
- end
73
- end
74
- end
@@ -1,2 +0,0 @@
1
- name 'acceptance-cookbook'
2
-
@@ -1,49 +0,0 @@
1
- run_tf "plan"
2
-
3
- run_tf "apply"
4
-
5
- ruby_block "install via winrm api" do
6
- block do
7
- # We do this hackery to ensure we load mixlib-install from source
8
- install_command = "install -project angry-omnibus-toolchain -channel current -version 1.1.57"
9
-
10
- shellout_command = <<-EOF.gsub /^\s*/, ""
11
- bundle exec ruby -e "require 'mixlib/install';\
12
- puts Mixlib::Install.install_ps1, '#{install_command}'"
13
- EOF
14
-
15
- require "mixlib/shellout"
16
-
17
- print_script = Mixlib::ShellOut.new(
18
- shellout_command,
19
- cwd: node['chef-acceptance']['suite-dir']
20
- )
21
- print_script.run_command
22
-
23
- run_shell(print_script.stdout)
24
- end
25
- end
26
-
27
- ruby_block "set omnibus paths" do
28
- block do
29
- toolchain_install_dir = File.join('c:', 'opscode', 'angry-omnibus-toolchain')
30
-
31
- omnibus_env = []
32
- omnibus_env << File.join(toolchain_install_dir, 'embedded', 'bin')
33
- omnibus_env << File.join(toolchain_install_dir, 'embedded', 'bin', 'mingw64', 'bin')
34
- omnibus_env << File.join(toolchain_install_dir, 'embedded', 'bin', 'usr', 'bin')
35
- omnibus_env << File.join(toolchain_install_dir, 'embedded', 'git', 'cmd')
36
- omnibus_env << File.join(toolchain_install_dir, 'embedded', 'git', 'mingw64', 'libexec', 'git-core')
37
-
38
- # Join paths by semi-colons then replace forwardslashes with backslashes
39
- omnibus_path = omnibus_env.join(";").gsub("/", "\\")
40
-
41
- # Permanently set omnibus path to machine PATH
42
- script = <<-EOF.gsub /^\s*/, ""
43
- $env:path += ';#{omnibus_path}'
44
- setx PATH $env:path /M
45
- EOF
46
-
47
- run_shell(script)
48
- end
49
- end
@@ -1,9 +0,0 @@
1
- execute "run inspec" do
2
- command lazy { "inspec exec verify.rb -t winrm://Administrator@#{instance_ip} --password $WINDOWS_PASSWORD" }
3
- cwd "#{node['chef-acceptance']['suite-dir']}/inspec"
4
- environment(
5
- lazy {
6
- { "WINDOWS_PASSWORD" => windows_password }
7
- }
8
- )
9
- end