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
@@ -1,11 +0,0 @@
1
- describe command("git --version") do
2
- its("stdout") { should match "git version" }
3
- end
4
-
5
- describe command("ruby --version") do
6
- its("stdout") { should match "ruby.*[x64-mingw32]" }
7
- end
8
-
9
- describe command("gcc --version") do
10
- its("stdout") { should match "gcc.exe" }
11
- end
@@ -1,59 +0,0 @@
1
- data "aws_ami" "windows_ami" {
2
- most_recent = true
3
-
4
- filter {
5
- name = "owner-alias"
6
- values = ["amazon"]
7
- }
8
-
9
- filter {
10
- name = "name"
11
- values = ["Windows_Server-2016-English-Nano-Base-*"]
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 = ["gp2"]
27
- }
28
-
29
- filter {
30
- name = "image-type"
31
- values = ["machine"]
32
- }
33
- }
34
-
35
- resource "aws_instance" "windows_server_nano_ami" {
36
- count = 1
37
-
38
- ami = "${data.aws_ami.windows_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
- tags {
52
- # ChefOps's AWS standard tags:
53
- X-Dept = "EngServ"
54
- X-Contact = "pwright"
55
- X-Production = "false"
56
- X-Environment = "acceptance"
57
- X-Application = "mixlib-install"
58
- }
59
- }
@@ -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,10 +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
- }
data/acceptance/Gemfile DELETED
@@ -1,8 +0,0 @@
1
- source "https://rubygems.org"
2
-
3
- gem "mixlib-install", path: "../"
4
- gem "chef"
5
- gem "chef-acceptance", github: "chef/chef-acceptance"
6
- gem "inspec"
7
- gem "aws-sdk"
8
- gem "winrm"
data/acceptance/README.md DELETED
@@ -1,6 +0,0 @@
1
- Using rvm? Run this: `export APPBUNDLER_ALLOW_RVM=true`
2
-
3
- Install deps `bundle install`
4
-
5
- Then run `bundle exec chef-acceptance test`
6
-
@@ -1,8 +0,0 @@
1
- nodes/
2
- tmp/
3
-
4
- # Terraform
5
- *.tfstate
6
- *.tfstate.backup
7
- *_override.tf
8
-
@@ -1,2 +0,0 @@
1
- name 'acceptance-cookbook'
2
-
@@ -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.3.42/el/7/chef-13.3.42-1.el7.x86_64.rpm', cmdline_dl_dir: '/tmp/checksum'}).install_command\" > ../.acceptance_data/centos_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.3.42/el/7/chef-13.3.42-1.el7.x86_64.rpm', checksum: 'fe051b504856a74ccce1fd23ff92c296506cb8292a3933c71069ae915e7a4a00', cmdline_dl_dir: '/tmp/checksum'}).install_command\" > ../.acceptance_data/centos_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/centos_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.3.42/el/7/chef-13.3.42-1.el7.x86_64.rpm', checksum: 'FOOOOOOOOOOOOOO', cmdline_dl_dir: '/tmp/bad'}).install_command\" > ../.acceptance_data/centos_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://centos@#{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 yum remove chef -y") 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 centos /tmp/checksum; sudo chown centos /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 yum remove chef -y") do
47
- its("stdout") { should match /Complete!/ }
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 yum remove chef -y") do
67
- its("stdout") { should match /Complete!/ }
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" "centos_7_ami" {
2
- most_recent = true
3
-
4
- filter {
5
- name = "owner-id"
6
- values = ["679593333241"]
7
- }
8
-
9
- filter {
10
- name = "name"
11
- values = ["CentOS Linux 7*"]
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.centos_7_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 = "centos"
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/centos_install_url.sh"
69
- destination = "/tmp/install.sh"
70
- }
71
-
72
- provisioner "file" {
73
- source = "../../.acceptance_data/centos_install_checksum.sh"
74
- destination = "/tmp/install_checksum.sh"
75
- }
76
-
77
- provisioner "file" {
78
- source = "../../.acceptance_data/centos_install_metadata.sh"
79
- destination = "/tmp/install_metadata.sh"
80
- }
81
-
82
- provisioner "file" {
83
- source = "../../.acceptance_data/centos_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,8 +0,0 @@
1
- nodes/
2
- tmp/
3
-
4
- # Terraform
5
- *.tfstate
6
- *.tfstate.backup
7
- *_override.tf
8
-
@@ -1,2 +0,0 @@
1
- name 'acceptance-cookbook'
2
-
@@ -1,3 +0,0 @@
1
- execute "terraform destroy -force" do
2
- cwd "#{node['chef-acceptance']['suite-dir']}/terraform"
3
- end
@@ -1,12 +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: 'omnibus-toolchain', product_version: :latest, channel: :stable).install_command\" > ../.acceptance_data/ubuntu_install_command.sh" do
3
- cwd node['chef-acceptance']['suite-dir']
4
- end
5
-
6
- execute "terraform plan" do
7
- cwd "#{node['chef-acceptance']['suite-dir']}/terraform"
8
- end
9
-
10
- execute "terraform apply" do
11
- cwd "#{node['chef-acceptance']['suite-dir']}/terraform"
12
- 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,3 +0,0 @@
1
- describe package("omnibus-toolchain") do
2
- it { should be_installed }
3
- end
@@ -1,78 +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 = ["gp2"]
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_command.sh"
69
- destination = "/tmp/install.sh"
70
- }
71
-
72
- provisioner "remote-exec" {
73
- inline = [
74
- "chmod +x /tmp/install.sh",
75
- "sudo bash /tmp/install.sh",
76
- ]
77
- }
78
- }