from-scratch 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (108) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/Berksfile.lock +11 -0
  4. data/chefignore +1 -0
  5. data/cookbooks/apt/CHANGELOG.md +248 -0
  6. data/cookbooks/apt/README.md +294 -0
  7. data/cookbooks/apt/attributes/default.rb +51 -0
  8. data/cookbooks/apt/files/default/15update-stamp +1 -0
  9. data/cookbooks/apt/files/default/apt-proxy-v2.conf +50 -0
  10. data/cookbooks/apt/libraries/helpers.rb +61 -0
  11. data/cookbooks/apt/libraries/matchers.rb +17 -0
  12. data/cookbooks/apt/libraries/network.rb +31 -0
  13. data/cookbooks/apt/metadata.json +1 -0
  14. data/cookbooks/apt/providers/preference.rb +84 -0
  15. data/cookbooks/apt/providers/repository.rb +246 -0
  16. data/cookbooks/apt/recipes/cacher-client.rb +83 -0
  17. data/cookbooks/apt/recipes/cacher-ng.rb +43 -0
  18. data/cookbooks/apt/recipes/default.rb +112 -0
  19. data/cookbooks/apt/recipes/unattended-upgrades.rb +47 -0
  20. data/cookbooks/apt/resources/preference.rb +37 -0
  21. data/cookbooks/apt/resources/repository.rb +60 -0
  22. data/cookbooks/apt/templates/debian-6.0/acng.conf.erb +173 -0
  23. data/cookbooks/apt/templates/default/01proxy.erb +9 -0
  24. data/cookbooks/apt/templates/default/10recommends.erb +3 -0
  25. data/cookbooks/apt/templates/default/20auto-upgrades.erb +2 -0
  26. data/cookbooks/apt/templates/default/50unattended-upgrades.erb +68 -0
  27. data/cookbooks/apt/templates/default/acng.conf.erb +275 -0
  28. data/cookbooks/apt/templates/default/unattended-upgrades.seed.erb +1 -0
  29. data/cookbooks/apt/templates/ubuntu-10.04/acng.conf.erb +269 -0
  30. data/cookbooks/build-essential/CHANGELOG.md +136 -0
  31. data/cookbooks/build-essential/README.md +108 -0
  32. data/cookbooks/build-essential/attributes/default.rb +20 -0
  33. data/cookbooks/build-essential/libraries/matchers.rb +5 -0
  34. data/cookbooks/build-essential/libraries/timing.rb +124 -0
  35. data/cookbooks/build-essential/libraries/xcode_command_line_tools.rb +210 -0
  36. data/cookbooks/build-essential/metadata.json +1 -0
  37. data/cookbooks/build-essential/recipes/_debian.rb +28 -0
  38. data/cookbooks/build-essential/recipes/_fedora.rb +32 -0
  39. data/cookbooks/build-essential/recipes/_freebsd.rb +24 -0
  40. data/cookbooks/build-essential/recipes/_mac_os_x.rb +22 -0
  41. data/cookbooks/build-essential/recipes/_omnios.rb +33 -0
  42. data/cookbooks/build-essential/recipes/_rhel.rb +36 -0
  43. data/cookbooks/build-essential/recipes/_smartos.rb +27 -0
  44. data/cookbooks/build-essential/recipes/_solaris2.rb +48 -0
  45. data/cookbooks/build-essential/recipes/_suse.rb +29 -0
  46. data/cookbooks/build-essential/recipes/default.rb +29 -0
  47. data/cookbooks/chef-sugar/CHANGELOG.md +159 -0
  48. data/cookbooks/chef-sugar/README.md +464 -0
  49. data/cookbooks/chef-sugar/metadata.json +1 -0
  50. data/cookbooks/chef-sugar/recipes/default.rb +34 -0
  51. data/cookbooks/openssl/CHANGELOG.md +30 -0
  52. data/cookbooks/openssl/README.md +115 -0
  53. data/cookbooks/openssl/attributes/default.rb +21 -0
  54. data/cookbooks/openssl/libraries/secure_password.rb +37 -0
  55. data/cookbooks/openssl/metadata.json +31 -0
  56. data/cookbooks/openssl/providers/x509.rb +94 -0
  57. data/cookbooks/openssl/recipes/default.rb +18 -0
  58. data/cookbooks/openssl/recipes/upgrade.rb +39 -0
  59. data/cookbooks/openssl/resources/x509.rb +16 -0
  60. data/cookbooks/postgresql/CHANGELOG.md +220 -0
  61. data/cookbooks/postgresql/README.md +464 -0
  62. data/cookbooks/postgresql/attributes/default.rb +549 -0
  63. data/cookbooks/postgresql/files/default/tests/minitest/apt_pgdg_postgresql_test.rb +39 -0
  64. data/cookbooks/postgresql/files/default/tests/minitest/default_test.rb +27 -0
  65. data/cookbooks/postgresql/files/default/tests/minitest/ruby_test.rb +28 -0
  66. data/cookbooks/postgresql/files/default/tests/minitest/server_test.rb +43 -0
  67. data/cookbooks/postgresql/files/default/tests/minitest/support/helpers.rb +29 -0
  68. data/cookbooks/postgresql/libraries/default.rb +377 -0
  69. data/cookbooks/postgresql/metadata.json +56 -0
  70. data/cookbooks/postgresql/recipes/apt_pgdg_postgresql.rb +18 -0
  71. data/cookbooks/postgresql/recipes/client.rb +32 -0
  72. data/cookbooks/postgresql/recipes/config_initdb.rb +148 -0
  73. data/cookbooks/postgresql/recipes/config_pgtune.rb +284 -0
  74. data/cookbooks/postgresql/recipes/contrib.rb +44 -0
  75. data/cookbooks/postgresql/recipes/default.rb +18 -0
  76. data/cookbooks/postgresql/recipes/ruby.rb +117 -0
  77. data/cookbooks/postgresql/recipes/server.rb +89 -0
  78. data/cookbooks/postgresql/recipes/server_conf.rb +34 -0
  79. data/cookbooks/postgresql/recipes/server_debian.rb +38 -0
  80. data/cookbooks/postgresql/recipes/server_redhat.rb +100 -0
  81. data/cookbooks/postgresql/recipes/yum_pgdg_postgresql.rb +45 -0
  82. data/cookbooks/postgresql/templates/default/pg_hba.conf.erb +35 -0
  83. data/cookbooks/postgresql/templates/default/pgsql.sysconfig.erb +4 -0
  84. data/cookbooks/postgresql/templates/default/postgresql.conf.erb +21 -0
  85. data/cookbooks/scratchify/.chef/knife.rb +2 -5
  86. data/cookbooks/scratchify/Berksfile +2 -1
  87. data/cookbooks/scratchify/Berksfile.lock +11 -0
  88. data/cookbooks/scratchify/README.md +34 -17
  89. data/cookbooks/scratchify/bin/scratchify +1 -1
  90. data/cookbooks/scratchify/chefignore +1 -0
  91. data/cookbooks/scratchify/from-scratch.gemspec +2 -5
  92. data/cookbooks/scratchify/lib/from-scratch.rb +25 -0
  93. data/cookbooks/scratchify/lib/{from/scratch → from-scratch}/version.rb +1 -1
  94. data/cookbooks/scratchify/metadata.json +2 -1
  95. data/cookbooks/scratchify/templates/node.json.erb +34 -0
  96. data/cookbooks/scratchify/templates/user.json.erb +6 -0
  97. data/lib/from-scratch.rb +2 -2
  98. data/lib/from-scratch/version.rb +1 -1
  99. data/templates/node.json.erb +6 -3
  100. metadata +85 -10
  101. data/cookbooks/scratchify/bin/console +0 -14
  102. data/cookbooks/scratchify/bin/setup +0 -7
  103. data/cookbooks/scratchify/data_bags/users/deploy.json +0 -6
  104. data/cookbooks/scratchify/environments/.gitkeep +0 -0
  105. data/cookbooks/scratchify/lib/from/scratch.rb +0 -31
  106. data/cookbooks/scratchify/lib/from/scratch/interviewer.rb +0 -35
  107. data/cookbooks/scratchify/nodes/normfood.ru.json +0 -75
  108. data/cookbooks/scratchify/roles/.gitkeep +0 -0
@@ -1,14 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- require "bundler/setup"
4
- require "from/scratch"
5
-
6
- # You can add fixtures and/or initialization code here to make experimenting
7
- # with your gem easier. You can also use a different console, if you like.
8
-
9
- # (If you use this, don't forget to add pry to your Gemfile!)
10
- # require "pry"
11
- # Pry.start
12
-
13
- require "irb"
14
- IRB.start
@@ -1,7 +0,0 @@
1
- #!/bin/bash
2
- set -euo pipefail
3
- IFS=$'\n\t'
4
-
5
- bundle install
6
-
7
- # Do any other automated setup that you need to do here
@@ -1,6 +0,0 @@
1
- {
2
- "id": "deploy",
3
- "name": "deploy",
4
- "groups": ["deploy"],
5
- "ssh_keys": ["ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDA0w9lFxWQta1H3pNvqvGtKTfdBahIMp9iqmxzDbwbMRZDuJ3ANNeHxebGP6F4pfjOoI9t/+l1ljgRbAXCEgi/klhjj7TMzGalzOBy5kOFfZlZO4km5wiM1QXPtgXhqe4qcnzNQkSTbh3+0h6arGV0fiHOa5Nc3hv3mnBce0M6PCpbK/PGYfc5/TJrvuMwd6K9vLUgFsiQ1vph6mncoAh0QHfbzKmDi86YyzwCyzxwwFz/ZCaYwxf11fAkydm6sNX9VxOqE16LjycFN1khe9xEyQ/wGP7uIH3LGR2VcHAPFxoaTAssyJtiF5WpNQXGCX3SyyBZf9lHjb0RP4IzYJvp gearhead@gearhead-desktop"]
6
- }
@@ -1,31 +0,0 @@
1
- require 'pry'
2
-
3
- require 'active_support'
4
- require 'active_support/core_ext/object'
5
-
6
- require 'sshkit'
7
-
8
- require 'from/scratch/version'
9
- require 'from/scratch/interviewer'
10
-
11
- module FromScratch
12
- def self.run!
13
- Interviewer.greetings
14
-
15
- host = Interviewer.get_host
16
-
17
- if host != 'localhost'
18
- `ssh-copy-id root@#{host}`
19
- root_host = SSHKit::Host.new "root@#{host}"
20
- else
21
- root_host = SSHKit::Host.new :local
22
- end
23
-
24
- SSHKit::Coordinator.new([root_host]).each do |host|
25
- execute 'adduser deploy --gecos "" --disabled-password'
26
- execute 'mkdir -p /home/deploy/.ssh/'
27
- execute 'cp -R ~/.ssh/authorized_keys /home/deploy/.ssh/'
28
- execute 'chown -R deploy:deploy /home/deploy/'
29
- end
30
- end
31
- end
@@ -1,35 +0,0 @@
1
- require 'colorize'
2
-
3
- module FromScratch
4
- module Interviewer
5
- class << self
6
- def greetings
7
- puts "Greetings, master! Let's make some magic.".blue
8
- end
9
-
10
- def get_host
11
- ask 'Please enter address of your server:', default: 'localhost'
12
- end
13
-
14
- private
15
-
16
- def ask(str, default: nil, default_str: nil, variants: [])
17
- puts
18
- puts str.yellow
19
- if variants.any?
20
- puts "[#{variants.map(&:yellow).join ' | '}]"
21
- while !variants.include?(answer = gets.strip)
22
- puts "not recognized".red
23
- end
24
- answer
25
- else
26
- if default || default_str
27
- puts "[#{default_str ? default_str : "leave blank for #{default.yellow}"}]"
28
- end
29
- answer = gets.strip
30
- default && answer.blank? ? default : answer
31
- end
32
- end
33
- end
34
- end
35
- end
@@ -1,75 +0,0 @@
1
- {
2
- "run_list": [
3
- "recipe[user::data_bag]",
4
- "recipe[rvm::system]",
5
- "recipe[scratchify]"//,
6
- //"recipe[apt]",
7
- // "recipe[ssh-hardening]",
8
- // "recipe[dpkg_packages]",
9
- // "recipe[postgresql::server]",
10
- // "recipe[postgresql::contrib]",
11
- // "recipe[postgresql::libpq]",
12
- // "recipe[nginx::server]",
13
- // "recipe[rvm::user]",
14
- ],
15
-
16
- "users": ["deploy"],
17
-
18
- "automatic": {
19
- "ipaddress": "normfood.ru"
20
- }//,
21
-
22
- // //"set_fqdn": "<myhostname>",
23
-
24
- // "dpkg_packages": {
25
- // "pkgs": {
26
- // "tzdata" : { "action": "upgrade" }//,
27
- // // "nodejs-dev" : { "action": "install" },
28
- // // "imagemagick": { "action": "install" },
29
- // // "htop" : { "action": "install" }
30
- // }
31
- // },
32
-
33
- // // Select Timezone you want to configure
34
- // // "tz": "America/Santiago",
35
-
36
- // // Postgresql configuration. You can create several users.
37
- // "postgresql": {
38
- // "shared_buffers": "256MB", // 1/4 of total memory is recommended
39
- // "shared_preload_libraries": "pg_stat_statements",
40
- // "users": [
41
- // {
42
- // "username": "deploy",
43
- // "password": "123456",
44
- // "superuser": true,
45
- // "login": true
46
- // }
47
- // ]
48
- // },
49
-
50
- // // Nginx default values configuration.
51
- // // Also you can specify your default site configuration.
52
- // "nginx": {
53
- // "user" : "deploy",
54
- // "client_max_body_size": "2m",
55
- // "worker_processes" : "auto",
56
- // "worker_connections" : 768,
57
- // "repository" : "ppa",
58
- // "site" : {
59
- // "host" : "<myhostname>",
60
- // "upstream_ports" : ["3000"],
61
- // "ip" : "0.0.0.0",
62
- // "listen" : "80"
63
- // }
64
- // },
65
-
66
- // // The default ruby version and gemset you’re going to use and rvm user.
67
- // "rvm" : {
68
- // "user_installs": [
69
- // {
70
- // "user" : "deploy",
71
- // "default_ruby" : "<ruby-version>@<gemset>"
72
- // }
73
- // ]
74
- // }
75
- }
File without changes