inspec 2.0.16 → 2.0.17

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 (480) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +101 -101
  3. data/CHANGELOG.md +2949 -2944
  4. data/Gemfile +55 -55
  5. data/LICENSE +14 -14
  6. data/MAINTAINERS.md +31 -31
  7. data/MAINTAINERS.toml +47 -47
  8. data/README.md +438 -438
  9. data/Rakefile +284 -284
  10. data/bin/inspec +12 -12
  11. data/docs/.gitignore +2 -2
  12. data/docs/README.md +40 -40
  13. data/docs/dsl_inspec.md +258 -258
  14. data/docs/dsl_resource.md +93 -93
  15. data/docs/glossary.md +99 -99
  16. data/docs/habitat.md +191 -191
  17. data/docs/inspec_and_friends.md +107 -107
  18. data/docs/matchers.md +165 -165
  19. data/docs/migration.md +293 -293
  20. data/docs/platforms.md +118 -118
  21. data/docs/plugin_kitchen_inspec.md +49 -49
  22. data/docs/profiles.md +370 -370
  23. data/docs/reporters.md +105 -105
  24. data/docs/resources/aide_conf.md.erb +75 -75
  25. data/docs/resources/apache.md.erb +67 -67
  26. data/docs/resources/apache_conf.md.erb +68 -68
  27. data/docs/resources/apt.md.erb +71 -71
  28. data/docs/resources/audit_policy.md.erb +47 -47
  29. data/docs/resources/auditd.md.erb +79 -79
  30. data/docs/resources/auditd_conf.md.erb +68 -68
  31. data/docs/resources/aws_cloudtrail_trail.md.erb +140 -140
  32. data/docs/resources/aws_cloudtrail_trails.md.erb +81 -81
  33. data/docs/resources/aws_cloudwatch_alarm.md.erb +86 -86
  34. data/docs/resources/aws_cloudwatch_log_metric_filter.md.erb +151 -151
  35. data/docs/resources/aws_ec2_instance.md.erb +106 -106
  36. data/docs/resources/aws_iam_access_key.md.erb +123 -123
  37. data/docs/resources/aws_iam_access_keys.md.erb +198 -198
  38. data/docs/resources/aws_iam_group.md.erb +46 -46
  39. data/docs/resources/aws_iam_groups.md.erb +43 -43
  40. data/docs/resources/aws_iam_password_policy.md.erb +76 -76
  41. data/docs/resources/aws_iam_policies.md.erb +82 -82
  42. data/docs/resources/aws_iam_policy.md.erb +146 -146
  43. data/docs/resources/aws_iam_role.md.erb +65 -65
  44. data/docs/resources/aws_iam_root_user.md.erb +58 -58
  45. data/docs/resources/aws_iam_user.md.erb +64 -64
  46. data/docs/resources/aws_iam_users.md.erb +89 -89
  47. data/docs/resources/aws_kms_keys.md.erb +84 -84
  48. data/docs/resources/aws_route_table.md.erb +47 -47
  49. data/docs/resources/aws_s3_bucket.md.erb +134 -134
  50. data/docs/resources/aws_security_group.md.erb +152 -152
  51. data/docs/resources/aws_security_groups.md.erb +92 -92
  52. data/docs/resources/aws_sns_topic.md.erb +62 -62
  53. data/docs/resources/aws_subnet.md.erb +133 -133
  54. data/docs/resources/aws_subnets.md.erb +126 -126
  55. data/docs/resources/aws_vpc.md.erb +120 -120
  56. data/docs/resources/aws_vpcs.md.erb +48 -48
  57. data/docs/resources/azure_generic_resource.md.erb +170 -139
  58. data/docs/resources/azure_resource_group.md.erb +284 -284
  59. data/docs/resources/azure_virtual_machine.md.erb +347 -314
  60. data/docs/resources/azure_virtual_machine_data_disk.md.erb +224 -182
  61. data/docs/resources/bash.md.erb +75 -75
  62. data/docs/resources/bond.md.erb +90 -90
  63. data/docs/resources/bridge.md.erb +57 -57
  64. data/docs/resources/bsd_service.md.erb +67 -67
  65. data/docs/resources/command.md.erb +138 -138
  66. data/docs/resources/cpan.md.erb +79 -79
  67. data/docs/resources/cran.md.erb +64 -64
  68. data/docs/resources/crontab.md.erb +88 -88
  69. data/docs/resources/csv.md.erb +54 -54
  70. data/docs/resources/dh_params.md.erb +217 -217
  71. data/docs/resources/directory.md.erb +30 -30
  72. data/docs/resources/docker.md.erb +164 -164
  73. data/docs/resources/docker_container.md.erb +104 -104
  74. data/docs/resources/docker_image.md.erb +94 -94
  75. data/docs/resources/docker_service.md.erb +114 -114
  76. data/docs/resources/elasticsearch.md.erb +242 -242
  77. data/docs/resources/etc_fstab.md.erb +125 -125
  78. data/docs/resources/etc_group.md.erb +75 -75
  79. data/docs/resources/etc_hosts.md.erb +78 -78
  80. data/docs/resources/etc_hosts_allow.md.erb +74 -74
  81. data/docs/resources/etc_hosts_deny.md.erb +74 -74
  82. data/docs/resources/file.md.erb +515 -515
  83. data/docs/resources/filesystem.md.erb +41 -41
  84. data/docs/resources/firewalld.md.erb +107 -107
  85. data/docs/resources/gem.md.erb +79 -79
  86. data/docs/resources/group.md.erb +61 -61
  87. data/docs/resources/grub_conf.md.erb +101 -101
  88. data/docs/resources/host.md.erb +78 -78
  89. data/docs/resources/http.md.erb +101 -101
  90. data/docs/resources/iis_app.md.erb +122 -122
  91. data/docs/resources/iis_site.md.erb +135 -135
  92. data/docs/resources/inetd_conf.md.erb +94 -94
  93. data/docs/resources/ini.md.erb +76 -76
  94. data/docs/resources/interface.md.erb +58 -58
  95. data/docs/resources/iptables.md.erb +64 -64
  96. data/docs/resources/json.md.erb +62 -62
  97. data/docs/resources/kernel_module.md.erb +107 -107
  98. data/docs/resources/kernel_parameter.md.erb +53 -53
  99. data/docs/resources/key_rsa.md.erb +85 -85
  100. data/docs/resources/launchd_service.md.erb +57 -57
  101. data/docs/resources/limits_conf.md.erb +75 -75
  102. data/docs/resources/login_def.md.erb +71 -71
  103. data/docs/resources/mount.md.erb +69 -69
  104. data/docs/resources/mssql_session.md.erb +60 -60
  105. data/docs/resources/mysql_conf.md.erb +99 -99
  106. data/docs/resources/mysql_session.md.erb +74 -74
  107. data/docs/resources/nginx.md.erb +79 -79
  108. data/docs/resources/nginx_conf.md.erb +128 -128
  109. data/docs/resources/npm.md.erb +60 -60
  110. data/docs/resources/ntp_conf.md.erb +60 -60
  111. data/docs/resources/oneget.md.erb +53 -53
  112. data/docs/resources/oracledb_session.md.erb +52 -52
  113. data/docs/resources/os.md.erb +141 -141
  114. data/docs/resources/os_env.md.erb +78 -78
  115. data/docs/resources/package.md.erb +120 -120
  116. data/docs/resources/packages.md.erb +67 -67
  117. data/docs/resources/parse_config.md.erb +103 -103
  118. data/docs/resources/parse_config_file.md.erb +138 -138
  119. data/docs/resources/passwd.md.erb +141 -141
  120. data/docs/resources/pip.md.erb +67 -67
  121. data/docs/resources/port.md.erb +137 -137
  122. data/docs/resources/postgres_conf.md.erb +79 -79
  123. data/docs/resources/postgres_hba_conf.md.erb +93 -93
  124. data/docs/resources/postgres_ident_conf.md.erb +76 -76
  125. data/docs/resources/postgres_session.md.erb +69 -69
  126. data/docs/resources/powershell.md.erb +102 -102
  127. data/docs/resources/processes.md.erb +109 -109
  128. data/docs/resources/rabbitmq_config.md.erb +41 -41
  129. data/docs/resources/registry_key.md.erb +158 -158
  130. data/docs/resources/runit_service.md.erb +57 -57
  131. data/docs/resources/security_policy.md.erb +47 -47
  132. data/docs/resources/service.md.erb +121 -121
  133. data/docs/resources/shadow.md.erb +144 -144
  134. data/docs/resources/ssh_config.md.erb +80 -80
  135. data/docs/resources/sshd_config.md.erb +83 -83
  136. data/docs/resources/ssl.md.erb +119 -119
  137. data/docs/resources/sys_info.md.erb +42 -42
  138. data/docs/resources/systemd_service.md.erb +57 -57
  139. data/docs/resources/sysv_service.md.erb +57 -57
  140. data/docs/resources/upstart_service.md.erb +57 -57
  141. data/docs/resources/user.md.erb +140 -140
  142. data/docs/resources/users.md.erb +127 -127
  143. data/docs/resources/vbscript.md.erb +55 -55
  144. data/docs/resources/virtualization.md.erb +57 -57
  145. data/docs/resources/windows_feature.md.erb +47 -47
  146. data/docs/resources/windows_hotfix.md.erb +53 -53
  147. data/docs/resources/windows_task.md.erb +95 -95
  148. data/docs/resources/wmi.md.erb +81 -81
  149. data/docs/resources/x509_certificate.md.erb +151 -151
  150. data/docs/resources/xinetd_conf.md.erb +156 -156
  151. data/docs/resources/xml.md.erb +85 -85
  152. data/docs/resources/yaml.md.erb +69 -69
  153. data/docs/resources/yum.md.erb +98 -98
  154. data/docs/resources/zfs_dataset.md.erb +53 -53
  155. data/docs/resources/zfs_pool.md.erb +47 -47
  156. data/docs/ruby_usage.md +203 -203
  157. data/docs/shared/matcher_be.md.erb +1 -1
  158. data/docs/shared/matcher_cmp.md.erb +43 -43
  159. data/docs/shared/matcher_eq.md.erb +3 -3
  160. data/docs/shared/matcher_include.md.erb +1 -1
  161. data/docs/shared/matcher_match.md.erb +1 -1
  162. data/docs/shell.md +172 -172
  163. data/examples/README.md +8 -8
  164. data/examples/inheritance/README.md +65 -65
  165. data/examples/inheritance/controls/example.rb +14 -14
  166. data/examples/inheritance/inspec.yml +15 -15
  167. data/examples/kitchen-ansible/.kitchen.yml +25 -25
  168. data/examples/kitchen-ansible/Gemfile +19 -19
  169. data/examples/kitchen-ansible/README.md +53 -53
  170. data/examples/kitchen-ansible/files/nginx.repo +6 -6
  171. data/examples/kitchen-ansible/tasks/main.yml +16 -16
  172. data/examples/kitchen-ansible/test/integration/default/default.yml +5 -5
  173. data/examples/kitchen-ansible/test/integration/default/web_spec.rb +28 -28
  174. data/examples/kitchen-chef/.kitchen.yml +20 -20
  175. data/examples/kitchen-chef/Berksfile +3 -3
  176. data/examples/kitchen-chef/Gemfile +19 -19
  177. data/examples/kitchen-chef/README.md +27 -27
  178. data/examples/kitchen-chef/metadata.rb +7 -7
  179. data/examples/kitchen-chef/recipes/default.rb +6 -6
  180. data/examples/kitchen-chef/recipes/nginx.rb +30 -30
  181. data/examples/kitchen-chef/test/integration/default/web_spec.rb +28 -28
  182. data/examples/kitchen-puppet/.kitchen.yml +22 -22
  183. data/examples/kitchen-puppet/Gemfile +20 -20
  184. data/examples/kitchen-puppet/Puppetfile +25 -25
  185. data/examples/kitchen-puppet/README.md +53 -53
  186. data/examples/kitchen-puppet/manifests/site.pp +33 -33
  187. data/examples/kitchen-puppet/metadata.json +11 -11
  188. data/examples/kitchen-puppet/test/integration/default/web_spec.rb +28 -28
  189. data/examples/meta-profile/README.md +37 -37
  190. data/examples/meta-profile/controls/example.rb +13 -13
  191. data/examples/meta-profile/inspec.yml +13 -13
  192. data/examples/profile-attribute.yml +2 -2
  193. data/examples/profile-attribute/README.md +14 -14
  194. data/examples/profile-attribute/controls/example.rb +11 -11
  195. data/examples/profile-attribute/inspec.yml +8 -8
  196. data/examples/profile-aws/controls/iam_password_policy_expiration.rb +8 -8
  197. data/examples/profile-aws/controls/iam_password_policy_max_age.rb +8 -8
  198. data/examples/profile-aws/controls/iam_root_user_mfa.rb +8 -8
  199. data/examples/profile-aws/controls/iam_users_access_key_age.rb +8 -8
  200. data/examples/profile-aws/controls/iam_users_console_users_mfa.rb +8 -8
  201. data/examples/profile-aws/inspec.yml +11 -11
  202. data/examples/profile-azure/controls/azure_resource_group_example.rb +24 -24
  203. data/examples/profile-azure/controls/azure_vm_example.rb +29 -29
  204. data/examples/profile-azure/inspec.yml +11 -11
  205. data/examples/profile-sensitive/README.md +29 -29
  206. data/examples/profile-sensitive/controls/sensitive-failures.rb +9 -9
  207. data/examples/profile-sensitive/controls/sensitive.rb +9 -9
  208. data/examples/profile-sensitive/inspec.yml +8 -8
  209. data/examples/profile/README.md +48 -48
  210. data/examples/profile/controls/example.rb +23 -23
  211. data/examples/profile/controls/gordon.rb +36 -36
  212. data/examples/profile/controls/meta.rb +34 -34
  213. data/examples/profile/inspec.yml +10 -10
  214. data/examples/profile/libraries/gordon_config.rb +53 -53
  215. data/inspec.gemspec +47 -47
  216. data/lib/bundles/README.md +3 -3
  217. data/lib/bundles/inspec-artifact.rb +7 -7
  218. data/lib/bundles/inspec-artifact/README.md +1 -1
  219. data/lib/bundles/inspec-artifact/cli.rb +277 -277
  220. data/lib/bundles/inspec-compliance.rb +16 -16
  221. data/lib/bundles/inspec-compliance/.kitchen.yml +20 -20
  222. data/lib/bundles/inspec-compliance/README.md +185 -185
  223. data/lib/bundles/inspec-compliance/api.rb +316 -316
  224. data/lib/bundles/inspec-compliance/api/login.rb +152 -152
  225. data/lib/bundles/inspec-compliance/bootstrap.sh +41 -41
  226. data/lib/bundles/inspec-compliance/cli.rb +254 -254
  227. data/lib/bundles/inspec-compliance/configuration.rb +103 -103
  228. data/lib/bundles/inspec-compliance/http.rb +86 -86
  229. data/lib/bundles/inspec-compliance/support.rb +36 -36
  230. data/lib/bundles/inspec-compliance/target.rb +98 -98
  231. data/lib/bundles/inspec-compliance/test/integration/default/cli.rb +93 -93
  232. data/lib/bundles/inspec-habitat.rb +12 -12
  233. data/lib/bundles/inspec-habitat/cli.rb +36 -36
  234. data/lib/bundles/inspec-habitat/log.rb +10 -10
  235. data/lib/bundles/inspec-habitat/profile.rb +390 -390
  236. data/lib/bundles/inspec-init.rb +8 -8
  237. data/lib/bundles/inspec-init/README.md +31 -31
  238. data/lib/bundles/inspec-init/cli.rb +97 -97
  239. data/lib/bundles/inspec-init/templates/profile/README.md +3 -3
  240. data/lib/bundles/inspec-init/templates/profile/controls/example.rb +19 -19
  241. data/lib/bundles/inspec-init/templates/profile/inspec.yml +8 -8
  242. data/lib/bundles/inspec-supermarket.rb +13 -13
  243. data/lib/bundles/inspec-supermarket/README.md +45 -45
  244. data/lib/bundles/inspec-supermarket/api.rb +84 -84
  245. data/lib/bundles/inspec-supermarket/cli.rb +73 -73
  246. data/lib/bundles/inspec-supermarket/target.rb +34 -34
  247. data/lib/fetchers/git.rb +163 -163
  248. data/lib/fetchers/local.rb +74 -74
  249. data/lib/fetchers/mock.rb +35 -35
  250. data/lib/fetchers/url.rb +204 -204
  251. data/lib/inspec.rb +24 -24
  252. data/lib/inspec/archive/tar.rb +29 -29
  253. data/lib/inspec/archive/zip.rb +19 -19
  254. data/lib/inspec/backend.rb +92 -92
  255. data/lib/inspec/base_cli.rb +350 -333
  256. data/lib/inspec/cached_fetcher.rb +66 -66
  257. data/lib/inspec/cli.rb +292 -302
  258. data/lib/inspec/completions/bash.sh.erb +45 -45
  259. data/lib/inspec/completions/fish.sh.erb +34 -34
  260. data/lib/inspec/completions/zsh.sh.erb +61 -61
  261. data/lib/inspec/control_eval_context.rb +179 -179
  262. data/lib/inspec/dependencies/cache.rb +72 -72
  263. data/lib/inspec/dependencies/dependency_set.rb +92 -92
  264. data/lib/inspec/dependencies/lockfile.rb +115 -115
  265. data/lib/inspec/dependencies/requirement.rb +123 -123
  266. data/lib/inspec/dependencies/resolver.rb +86 -86
  267. data/lib/inspec/describe.rb +27 -27
  268. data/lib/inspec/dsl.rb +66 -66
  269. data/lib/inspec/dsl_shared.rb +33 -33
  270. data/lib/inspec/env_printer.rb +157 -157
  271. data/lib/inspec/errors.rb +13 -13
  272. data/lib/inspec/exceptions.rb +12 -12
  273. data/lib/inspec/expect.rb +45 -45
  274. data/lib/inspec/fetcher.rb +45 -45
  275. data/lib/inspec/file_provider.rb +275 -275
  276. data/lib/inspec/formatters.rb +3 -3
  277. data/lib/inspec/formatters/base.rb +250 -250
  278. data/lib/inspec/formatters/json_rspec.rb +20 -20
  279. data/lib/inspec/formatters/show_progress.rb +12 -12
  280. data/lib/inspec/library_eval_context.rb +58 -58
  281. data/lib/inspec/log.rb +11 -11
  282. data/lib/inspec/metadata.rb +247 -247
  283. data/lib/inspec/method_source.rb +24 -24
  284. data/lib/inspec/objects.rb +14 -14
  285. data/lib/inspec/objects/attribute.rb +65 -65
  286. data/lib/inspec/objects/control.rb +61 -61
  287. data/lib/inspec/objects/describe.rb +92 -92
  288. data/lib/inspec/objects/each_loop.rb +36 -36
  289. data/lib/inspec/objects/list.rb +15 -15
  290. data/lib/inspec/objects/or_test.rb +40 -40
  291. data/lib/inspec/objects/ruby_helper.rb +15 -15
  292. data/lib/inspec/objects/tag.rb +27 -27
  293. data/lib/inspec/objects/test.rb +87 -87
  294. data/lib/inspec/objects/value.rb +27 -27
  295. data/lib/inspec/plugins.rb +60 -60
  296. data/lib/inspec/plugins/cli.rb +24 -24
  297. data/lib/inspec/plugins/fetcher.rb +86 -86
  298. data/lib/inspec/plugins/resource.rb +133 -133
  299. data/lib/inspec/plugins/secret.rb +15 -15
  300. data/lib/inspec/plugins/source_reader.rb +40 -40
  301. data/lib/inspec/polyfill.rb +12 -12
  302. data/lib/inspec/profile.rb +510 -510
  303. data/lib/inspec/profile_context.rb +207 -207
  304. data/lib/inspec/profile_vendor.rb +66 -66
  305. data/lib/inspec/reporters.rb +50 -50
  306. data/lib/inspec/reporters/base.rb +24 -24
  307. data/lib/inspec/reporters/cli.rb +356 -356
  308. data/lib/inspec/reporters/json.rb +116 -116
  309. data/lib/inspec/reporters/json_min.rb +48 -48
  310. data/lib/inspec/reporters/junit.rb +77 -77
  311. data/lib/inspec/require_loader.rb +33 -33
  312. data/lib/inspec/resource.rb +186 -186
  313. data/lib/inspec/rule.rb +266 -266
  314. data/lib/inspec/runner.rb +344 -344
  315. data/lib/inspec/runner_mock.rb +41 -41
  316. data/lib/inspec/runner_rspec.rb +174 -174
  317. data/lib/inspec/runtime_profile.rb +26 -26
  318. data/lib/inspec/schema.rb +213 -213
  319. data/lib/inspec/secrets.rb +19 -19
  320. data/lib/inspec/secrets/yaml.rb +30 -30
  321. data/lib/inspec/shell.rb +220 -223
  322. data/lib/inspec/shell_detector.rb +90 -90
  323. data/lib/inspec/source_reader.rb +29 -29
  324. data/lib/inspec/version.rb +8 -8
  325. data/lib/matchers/matchers.rb +339 -339
  326. data/lib/resource_support/aws.rb +40 -40
  327. data/lib/resource_support/aws/aws_backend_base.rb +12 -12
  328. data/lib/resource_support/aws/aws_backend_factory_mixin.rb +12 -12
  329. data/lib/resource_support/aws/aws_plural_resource_mixin.rb +21 -21
  330. data/lib/resource_support/aws/aws_resource_mixin.rb +66 -66
  331. data/lib/resource_support/aws/aws_singular_resource_mixin.rb +24 -24
  332. data/lib/resources/aide_conf.rb +160 -160
  333. data/lib/resources/apache.rb +48 -48
  334. data/lib/resources/apache_conf.rb +156 -156
  335. data/lib/resources/apt.rb +149 -149
  336. data/lib/resources/audit_policy.rb +63 -63
  337. data/lib/resources/auditd.rb +231 -231
  338. data/lib/resources/auditd_conf.rb +55 -55
  339. data/lib/resources/aws/aws_cloudtrail_trail.rb +77 -77
  340. data/lib/resources/aws/aws_cloudtrail_trails.rb +47 -47
  341. data/lib/resources/aws/aws_cloudwatch_alarm.rb +62 -62
  342. data/lib/resources/aws/aws_cloudwatch_log_metric_filter.rb +100 -100
  343. data/lib/resources/aws/aws_ec2_instance.rb +157 -157
  344. data/lib/resources/aws/aws_iam_access_key.rb +106 -106
  345. data/lib/resources/aws/aws_iam_access_keys.rb +144 -144
  346. data/lib/resources/aws/aws_iam_group.rb +56 -56
  347. data/lib/resources/aws/aws_iam_groups.rb +45 -45
  348. data/lib/resources/aws/aws_iam_password_policy.rb +116 -116
  349. data/lib/resources/aws/aws_iam_policies.rb +46 -46
  350. data/lib/resources/aws/aws_iam_policy.rb +119 -119
  351. data/lib/resources/aws/aws_iam_role.rb +51 -51
  352. data/lib/resources/aws/aws_iam_root_user.rb +60 -60
  353. data/lib/resources/aws/aws_iam_user.rb +111 -111
  354. data/lib/resources/aws/aws_iam_users.rb +96 -96
  355. data/lib/resources/aws/aws_kms_keys.rb +46 -46
  356. data/lib/resources/aws/aws_route_table.rb +61 -61
  357. data/lib/resources/aws/aws_s3_bucket.rb +115 -115
  358. data/lib/resources/aws/aws_security_group.rb +93 -93
  359. data/lib/resources/aws/aws_security_groups.rb +68 -68
  360. data/lib/resources/aws/aws_sns_topic.rb +53 -53
  361. data/lib/resources/aws/aws_subnet.rb +88 -88
  362. data/lib/resources/aws/aws_subnets.rb +53 -53
  363. data/lib/resources/aws/aws_vpc.rb +69 -69
  364. data/lib/resources/aws/aws_vpcs.rb +45 -45
  365. data/lib/resources/azure/azure_backend.rb +377 -377
  366. data/lib/resources/azure/azure_generic_resource.rb +59 -59
  367. data/lib/resources/azure/azure_resource_group.rb +152 -152
  368. data/lib/resources/azure/azure_virtual_machine.rb +264 -264
  369. data/lib/resources/azure/azure_virtual_machine_data_disk.rb +136 -136
  370. data/lib/resources/bash.rb +35 -35
  371. data/lib/resources/bond.rb +68 -68
  372. data/lib/resources/bridge.rb +122 -122
  373. data/lib/resources/command.rb +69 -69
  374. data/lib/resources/cpan.rb +58 -58
  375. data/lib/resources/cran.rb +64 -64
  376. data/lib/resources/crontab.rb +170 -170
  377. data/lib/resources/csv.rb +60 -60
  378. data/lib/resources/dh_params.rb +82 -82
  379. data/lib/resources/directory.rb +25 -25
  380. data/lib/resources/docker.rb +236 -236
  381. data/lib/resources/docker_container.rb +89 -89
  382. data/lib/resources/docker_image.rb +83 -83
  383. data/lib/resources/docker_object.rb +57 -57
  384. data/lib/resources/docker_service.rb +90 -90
  385. data/lib/resources/elasticsearch.rb +169 -169
  386. data/lib/resources/etc_fstab.rb +102 -102
  387. data/lib/resources/etc_group.rb +156 -156
  388. data/lib/resources/etc_hosts.rb +81 -81
  389. data/lib/resources/etc_hosts_allow_deny.rb +123 -123
  390. data/lib/resources/file.rb +298 -298
  391. data/lib/resources/filesystem.rb +31 -31
  392. data/lib/resources/firewalld.rb +144 -144
  393. data/lib/resources/gem.rb +70 -70
  394. data/lib/resources/groups.rb +215 -215
  395. data/lib/resources/grub_conf.rb +237 -237
  396. data/lib/resources/host.rb +300 -300
  397. data/lib/resources/http.rb +250 -250
  398. data/lib/resources/iis_app.rb +104 -104
  399. data/lib/resources/iis_site.rb +148 -148
  400. data/lib/resources/inetd_conf.rb +62 -62
  401. data/lib/resources/ini.rb +29 -29
  402. data/lib/resources/interface.rb +129 -129
  403. data/lib/resources/iptables.rb +69 -69
  404. data/lib/resources/json.rb +117 -117
  405. data/lib/resources/kernel_module.rb +107 -107
  406. data/lib/resources/kernel_parameter.rb +58 -58
  407. data/lib/resources/key_rsa.rb +67 -67
  408. data/lib/resources/limits_conf.rb +55 -55
  409. data/lib/resources/login_def.rb +66 -66
  410. data/lib/resources/mount.rb +88 -88
  411. data/lib/resources/mssql_session.rb +101 -101
  412. data/lib/resources/mysql.rb +81 -81
  413. data/lib/resources/mysql_conf.rb +134 -134
  414. data/lib/resources/mysql_session.rb +71 -71
  415. data/lib/resources/nginx.rb +96 -96
  416. data/lib/resources/nginx_conf.rb +227 -227
  417. data/lib/resources/npm.rb +48 -48
  418. data/lib/resources/ntp_conf.rb +58 -58
  419. data/lib/resources/oneget.rb +71 -71
  420. data/lib/resources/oracledb_session.rb +139 -139
  421. data/lib/resources/os.rb +36 -36
  422. data/lib/resources/os_env.rb +76 -76
  423. data/lib/resources/package.rb +363 -363
  424. data/lib/resources/packages.rb +111 -111
  425. data/lib/resources/parse_config.rb +116 -116
  426. data/lib/resources/passwd.rb +74 -74
  427. data/lib/resources/pip.rb +89 -89
  428. data/lib/resources/platform.rb +109 -109
  429. data/lib/resources/port.rb +771 -771
  430. data/lib/resources/postgres.rb +130 -130
  431. data/lib/resources/postgres_conf.rb +121 -121
  432. data/lib/resources/postgres_hba_conf.rb +100 -100
  433. data/lib/resources/postgres_ident_conf.rb +78 -78
  434. data/lib/resources/postgres_session.rb +71 -71
  435. data/lib/resources/powershell.rb +57 -57
  436. data/lib/resources/processes.rb +204 -204
  437. data/lib/resources/rabbitmq_conf.rb +52 -52
  438. data/lib/resources/registry_key.rb +296 -296
  439. data/lib/resources/security_policy.rb +180 -180
  440. data/lib/resources/service.rb +789 -789
  441. data/lib/resources/shadow.rb +140 -140
  442. data/lib/resources/ssh_conf.rb +102 -102
  443. data/lib/resources/ssl.rb +99 -99
  444. data/lib/resources/sys_info.rb +28 -28
  445. data/lib/resources/toml.rb +32 -32
  446. data/lib/resources/users.rb +654 -654
  447. data/lib/resources/vbscript.rb +69 -69
  448. data/lib/resources/virtualization.rb +251 -251
  449. data/lib/resources/windows_feature.rb +84 -84
  450. data/lib/resources/windows_hotfix.rb +35 -35
  451. data/lib/resources/windows_task.rb +105 -105
  452. data/lib/resources/wmi.rb +113 -113
  453. data/lib/resources/x509_certificate.rb +143 -143
  454. data/lib/resources/xinetd.rb +111 -111
  455. data/lib/resources/xml.rb +46 -46
  456. data/lib/resources/yaml.rb +47 -47
  457. data/lib/resources/yum.rb +180 -180
  458. data/lib/resources/zfs_dataset.rb +60 -60
  459. data/lib/resources/zfs_pool.rb +49 -49
  460. data/lib/source_readers/flat.rb +39 -39
  461. data/lib/source_readers/inspec.rb +75 -75
  462. data/lib/utils/command_wrapper.rb +27 -27
  463. data/lib/utils/convert.rb +12 -12
  464. data/lib/utils/database_helpers.rb +77 -77
  465. data/lib/utils/erlang_parser.rb +192 -192
  466. data/lib/utils/filter.rb +272 -272
  467. data/lib/utils/filter_array.rb +27 -27
  468. data/lib/utils/find_files.rb +44 -44
  469. data/lib/utils/hash.rb +41 -41
  470. data/lib/utils/json_log.rb +18 -18
  471. data/lib/utils/latest_version.rb +22 -22
  472. data/lib/utils/modulator.rb +12 -12
  473. data/lib/utils/nginx_parser.rb +85 -85
  474. data/lib/utils/object_traversal.rb +49 -49
  475. data/lib/utils/parser.rb +274 -274
  476. data/lib/utils/plugin_registry.rb +93 -93
  477. data/lib/utils/simpleconfig.rb +120 -120
  478. data/lib/utils/spdx.rb +13 -13
  479. data/lib/utils/spdx.txt +343 -343
  480. metadata +1 -1
@@ -1,284 +1,284 @@
1
- ---
2
- title: About the azure_resource_group_resource_counts Resource
3
- ---
4
-
5
- # azure\_resource\_group\_resource\_counts
6
-
7
- Use the `azure_resource_group_resource_counts` InSpec audit resource to check the number of Azure resources in a resource group.
8
-
9
- ## Syntax
10
-
11
- The name of the resource group is specified as a parameter on the resource:
12
-
13
- describe azure_resource_group(name: 'MyResourceGroup') do
14
- its('property') { should eq 'value' }
15
- end
16
-
17
- where
18
-
19
- * `MyResourceGroup` is the name of the resource group being interrogated
20
- * `property` is one a resource property
21
- * `value` is the expected output from the matcher
22
-
23
- The options that can be passed to the resource are as follows.
24
-
25
- ## Examples
26
-
27
- The following examples show how to use this InSpec audit resource:
28
-
29
- ### Test Resource Group has the correct number of resources
30
-
31
- describe azure_resource_group_resource_counts(name: 'Inspec-Azure') do
32
- its('total') { should eq 7}
33
- end
34
-
35
- ### Ensure that the Resource Group contains the correct resources
36
-
37
- describe azure_resource_group_resource_counts(name: 'Inspec-Azure') do
38
- its('total') { should eq 7 }
39
- its('vm_count') { should eq 2 }
40
- its('nic_count') { should eq 2 }
41
- its('public_ip_count') { should eq 1 }
42
- its('sa_count') { should eq 1 }
43
- its('vnet_count') { should eq 1 }
44
- end
45
-
46
- <br>
47
-
48
- ## Resource Parameters
49
-
50
- The options that can be passed to the resource are as follows.
51
-
52
- ### `group_name` (required)
53
-
54
- Use this parameter to define the Azure Resource Group to be tested.
55
-
56
- example: MyResourceGroup
57
-
58
- ### `name`
59
-
60
- Use this parameter to define the name of the Azure resource to test.
61
-
62
- example: MyVM
63
-
64
- If both `group_name` and `name` is set then `name` will take priority.
65
-
66
- These options can also be set using the environment variables:
67
-
68
- * `AZURE_RESOURCE_GROUP_NAME`
69
- * `AZURE_RESOURCE_NAME`
70
-
71
- When the options have been set as well as the environment variables, the environment variables take priority.
72
-
73
- <br>
74
-
75
- ## Parameter Examples
76
-
77
- describe azure_resource_group_resource_counts(name: 'ChefAutomate') do
78
- its('total') { should eq 7}
79
- its('nic_count') { should eq 1 }
80
- its('vm_count') { should eq 1 }
81
- end
82
-
83
- <br>
84
-
85
- ## Properties
86
-
87
- * `name`, `location` ,`id`, `provisioning_state`, `subscription_id`, `total`, `nic_count`, `vm_count`, `extension_count`, `vnet_count`, `sa_count`, `public_ip_count`,`managed_disk_image_count`, `managed_disk_count`, `tag_count`
88
-
89
- <br>
90
-
91
- ## Property Examples
92
-
93
- This InSpec audit resource has the following properties:
94
-
95
- ### name
96
-
97
- Tests the name of the resource group.
98
-
99
- its('name') { should cmp 'Inspec-Azure' }
100
-
101
- ### location
102
-
103
- Tests where in Azure the resource group is located.
104
-
105
- its('location') { should cmp 'westeurope' }
106
-
107
- ### id
108
-
109
- Tests the full qualified ID of the resource group.
110
-
111
- This takes the format: `/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP_NAME>`.
112
-
113
- its('id') { should cmp 'FQDN' }
114
-
115
- ### provisioning_state
116
-
117
- Tests thehe provisioning state of the resource group.
118
-
119
- its('provisioning_state') { should cmp 'Succeeded' }
120
-
121
- ### total
122
-
123
- Tests the total number of resources in the resource group.
124
-
125
- its('total') { should eq 13 }
126
-
127
- ### nic_count
128
-
129
- Tests the number of network interface cards in the resource group.
130
-
131
- it { should have_nics }
132
- its('nic_count') { should eq 3 }
133
-
134
- ### vm_count
135
-
136
- Tests the number of virtual machines in the resource group.
137
-
138
- its('vm_count') { should eq 5 }
139
-
140
- ### vnet_count
141
-
142
- Tests the number of virtual networks in the resource group.
143
-
144
- its('vnet_count') { should eq 5 }
145
-
146
- ### sa_count
147
-
148
- Tests the number of storage accounts in the resource group.
149
-
150
- its('sa_count') { should eq 5 }
151
-
152
- ### public\_ip\_count
153
-
154
- Tests the number of Public IP Addresses in the resource group.
155
-
156
- its('public_ip_count') { should eq 5 }
157
-
158
- ### managed\_disk\_image\_count
159
-
160
- Tests the number of managed disk images that are in the resource group.
161
-
162
- These are the items from which managed disks are created which are attached to machines. Generally the images are created from a base image or a custom image (e.g. Packer).
163
-
164
- its('managed_disk_image_count') { should eq 5 }
165
-
166
- ### managed\_disk\_count
167
-
168
- Tests the number of managed disks in the resource group.
169
-
170
- If a resource group contains one virtual machine with an OS disk and 2 data disks that are all Managed Disks, then the count would be 3.
171
-
172
- its('managed_disk_count') { should eq 3 }
173
-
174
- <br>
175
-
176
- ## Matchers
177
-
178
- This resource has a number of special matchers that provide a simple way to test of a specific Azure Resoure Type exists in the resource group.
179
-
180
- For a full list of available matchers, please visit our [matchers page](https://www.inspec.io/docs/reference/matchers/).
181
-
182
- ### have_nics
183
-
184
- Use this matcher to test if network interfaces exist.
185
-
186
- it { should have_ncis }
187
-
188
- ### have_vms
189
-
190
- Use this matcher to test that virtual machines exist.
191
-
192
- it { should have_vms }
193
-
194
- ### have_extensions
195
-
196
- Use this matcher to test for virtual machine extensions.
197
-
198
- it { should have_extensions }
199
-
200
- ### have_nsgs
201
-
202
- Use this matcher to test that network security groups exist.
203
-
204
- it { should have_nsgs }
205
-
206
- ### have_vnets
207
-
208
- Use this matcher to test that virtual networks exist.
209
-
210
- it { should have_vnets }
211
-
212
- ### have\_managed\_disks
213
-
214
- Use this matcher to test that managed disks exist.
215
-
216
- it { should have_managed_disks }
217
-
218
- ### have\_managed\_disk\_images
219
-
220
- Use this matcher to test that managed disk images exist.
221
-
222
- it { should have_managed_disk_images }
223
-
224
- ### have_sas
225
-
226
- Use this matcher to test that storage accounts exist.
227
-
228
- it { should have_sas }
229
-
230
- ### have\_public\_ips
231
-
232
- Use this matcher to test that public ips exist.
233
-
234
- it { should have_public_ips }
235
-
236
- ## Tags
237
-
238
- It is possible to test the tags that have been assigned to the resource. There are a number of properties that can be called to check that it has tags, that it has the correct number and that the correct ones are assigned.
239
-
240
- ### have\_tags
241
-
242
- This is a simple test to see if the machine has tags assigned to it or not.
243
-
244
- it { should have_tags }
245
-
246
- ### tag\_count
247
-
248
- Returns the number of tags that are assigned to the resource
249
-
250
- its ('tag_count') { should eq 2 }
251
-
252
- ### tags
253
-
254
- It is possible to check if a specific tag has been set on the resource.
255
-
256
- its('tags') { should include 'Owner' }
257
-
258
- ### xxx\_tag
259
-
260
- To get the value of the tag, a number of preoprties have been created from the tags that are set.
261
-
262
- For example, if the following tag is set on a resource:
263
-
264
- | Tag Name | Value |
265
- |----------|-------|
266
- | Owner | Russell Seymour |
267
-
268
- Then a property is available called `Owner_tag`.
269
-
270
- its('Owner_tag') { should cmp 'Russell Seymour' }
271
-
272
- Note: The tag name is case sensitive which makes the test case sensitive. E.g. `owner_tag` does not equal `Owner_tag`.
273
-
274
- <br>
275
-
276
- ## References
277
-
278
- For more information on Azure Ruby SDK resources, see:
279
-
280
- * [Azure Ruby SDK - Resources](https://github.com/Azure/azure-sdk-for-ruby/tree/master/management/azure_mgmt_resources)
281
-
282
- For more exaples on using these resource properties in tests, see:
283
-
284
- * [Resource Group](https://github.com/chef/inspec/blob/fc990346f2438690f0ac36a9f6606e61574a79b8/test/azure/verify/controls/resource_group.rb)
1
+ ---
2
+ title: About the azure_resource_group_resource_counts Resource
3
+ platform: azure
4
+ ---
5
+
6
+ # azure\_resource\_group\_resource\_counts
7
+
8
+ Use the `azure_resource_group_resource_counts` InSpec audit resource to check the number of Azure resources in a resource group.
9
+
10
+ ## Syntax
11
+
12
+ The name of the resource group is specified as a parameter on the resource:
13
+
14
+ describe azure_resource_group(name: 'MyResourceGroup') do
15
+ its('property') { should eq 'value' }
16
+ end
17
+
18
+ where
19
+
20
+ * `MyResourceGroup` is the name of the resource group being interrogated
21
+ * `property` is one a resource property
22
+ * `value` is the expected output from the matcher
23
+
24
+ ## Examples
25
+
26
+ The following examples show how to use this InSpec audit resource:
27
+
28
+ ### Ensure the Resource Group has the correct number of resources
29
+
30
+ describe azure_resource_group_resource_counts(name: 'Inspec-Azure') do
31
+ its('total') { should eq 7}
32
+ end
33
+
34
+ ### Ensure that the Resource Group contains the correct resources
35
+
36
+ describe azure_resource_group_resource_counts(name: 'Inspec-Azure') do
37
+ its('total') { should eq 7 }
38
+ its('vm_count') { should eq 2 }
39
+ its('nic_count') { should eq 2 }
40
+ its('public_ip_count') { should eq 1 }
41
+ its('sa_count') { should eq 1 }
42
+ its('vnet_count') { should eq 1 }
43
+ end
44
+
45
+ <br>
46
+
47
+ ## Parameters
48
+
49
+ * `group_name`, `name`
50
+
51
+ ## Parameter Examples
52
+
53
+ The options that can be passed to the resource are as follows.
54
+
55
+ ### group_name (required)
56
+
57
+ Use this parameter to define the Azure Resource Group to be tested.
58
+
59
+ describe azure_virtual_machine_data_disk(group_name: 'InSpec-Azure') do
60
+ ...
61
+ end
62
+
63
+ ### name
64
+
65
+ Use this parameter to define the name of the Azure resource to test.
66
+
67
+ describe azure_virtual_machine_data_disk(group_name: 'InSpec-Azure', name: 'Windows-Internal-VM') do
68
+ ...
69
+ end
70
+
71
+ If both `group_name` and `name` is set then `name` takes priority
72
+
73
+ These options can also be set using the environment variables:
74
+
75
+ * `AZURE_RESOURCE_GROUP_NAME`
76
+ * `AZURE_RESOURCE_NAME`
77
+
78
+ When the options have been set as well as the environment variables, the environment variables take priority.
79
+
80
+ <br>
81
+
82
+ ## Parameter Example
83
+
84
+ describe azure_generic_resource(group_name: 'Inspec-Azure', name: 'Linux-Internal-VM') do
85
+ its('location') { should eq 'westeurope' }
86
+ end
87
+
88
+ <br>
89
+
90
+ ## Properties
91
+
92
+ * `name`, `location` ,`id`, `provisioning_state`, `subscription_id`, `total`, `nic_count`, `vm_count`, `extension_count`, `vnet_count`, `sa_count`, `public_ip_count`,`managed_disk_image_count`, `managed_disk_count`, `tag_count`
93
+
94
+ <br>
95
+
96
+ ## Property Examples
97
+
98
+ This InSpec audit resource has the following properties:
99
+
100
+ ### name
101
+
102
+ Tests the name of the resource group.
103
+
104
+ its('name') { should cmp 'Inspec-Azure' }
105
+
106
+ ### location
107
+
108
+ Tests where in Azure the resource group is located.
109
+
110
+ its('location') { should cmp 'westeurope' }
111
+
112
+ ### id
113
+
114
+ Tests the full qualified ID of the resource group.
115
+
116
+ This takes the format: `/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP_NAME>`.
117
+
118
+ its('id') { should cmp 'FQDN' }
119
+
120
+ ### provisioning_state
121
+
122
+ Tests thehe provisioning state of the resource group.
123
+
124
+ its('provisioning_state') { should cmp 'Succeeded' }
125
+
126
+ ### total
127
+
128
+ Tests the total number of resources in the resource group.
129
+
130
+ its('total') { should eq 13 }
131
+
132
+ ### nic_count
133
+
134
+ Tests the number of network interface cards in the resource group.
135
+
136
+ it { should have_nics }
137
+ its('nic_count') { should eq 3 }
138
+
139
+ ### vm_count
140
+
141
+ Tests the number of virtual machines in the resource group.
142
+
143
+ its('vm_count') { should eq 5 }
144
+
145
+ ### vnet_count
146
+
147
+ Tests the number of virtual networks in the resource group.
148
+
149
+ its('vnet_count') { should eq 5 }
150
+
151
+ ### sa_count
152
+
153
+ Tests the number of storage accounts in the resource group.
154
+
155
+ its('sa_count') { should eq 5 }
156
+
157
+ ### public\_ip\_count
158
+
159
+ Tests the number of Public IP Addresses in the resource group.
160
+
161
+ its('public_ip_count') { should eq 5 }
162
+
163
+ ### managed\_disk\_image\_count
164
+
165
+ Tests the number of managed disk images that are in the resource group.
166
+
167
+ Managed disks are created from disk images and then attached to the machines. Generally, the images are created from a base image or a custom image (e.g., Packer)
168
+
169
+ its('managed_disk_image_count') { should eq 5 }
170
+
171
+ ### managed\_disk\_count
172
+
173
+ Tests the number of managed disks in the resource group.
174
+
175
+ If a resource group contains one virtual machine with an OS disk and 2 data disks that are all Managed Disks, then the count would be 3.
176
+
177
+ its('managed_disk_count') { should eq 3 }
178
+
179
+ <br>
180
+
181
+ ## Matchers
182
+
183
+ This resource has a number of special matchers that provide a simple way to test of a specific Azure Resoure Type exists in the resource group.
184
+
185
+ For a full list of available matchers, please visit our [matchers page](https://www.inspec.io/docs/reference/matchers/).
186
+
187
+ ### have_nics
188
+
189
+ Use this matcher to test if network interfaces exist.
190
+
191
+ it { should have_ncis }
192
+
193
+ ### have_vms
194
+
195
+ Use this matcher to test that virtual machines exist.
196
+
197
+ it { should have_vms }
198
+
199
+ ### have_extensions
200
+
201
+ Use this matcher to test for virtual machine extensions.
202
+
203
+ it { should have_extensions }
204
+
205
+ ### have_nsgs
206
+
207
+ Use this matcher to test that network security groups exist.
208
+
209
+ it { should have_nsgs }
210
+
211
+ ### have_vnets
212
+
213
+ Use this matcher to test that virtual networks exist.
214
+
215
+ it { should have_vnets }
216
+
217
+ ### have\_managed\_disks
218
+
219
+ Use this matcher to test that managed disks exist.
220
+
221
+ it { should have_managed_disks }
222
+
223
+ ### have\_managed\_disk\_images
224
+
225
+ Use this matcher to test that managed disk images exist.
226
+
227
+ it { should have_managed_disk_images }
228
+
229
+ ### have_sas
230
+
231
+ Use this matcher to test that storage accounts exist.
232
+
233
+ it { should have_sas }
234
+
235
+ ### have\_public\_ips
236
+
237
+ Use this matcher to test that public ips exist.
238
+
239
+ it { should have_public_ips }
240
+
241
+ ## Tags
242
+
243
+ It is possible to test the tags that have been assigned to the resource. There are some properties for checking that a resource has tags, that it has the correct number of tags, and that the correct tags are assigned.
244
+
245
+ ### have\_tags
246
+
247
+ This is a simple test to see if the machine has tags assigned to it or not.
248
+
249
+ it { should have_tags }
250
+
251
+ ### tag\_count
252
+
253
+ Returns the number of tags that are assigned to the resource
254
+
255
+ its ('tag_count') { should eq 2 }
256
+
257
+ ### tags
258
+
259
+ It is possible to check if a specific tag has been set on the resource.
260
+
261
+ its('tags') { should include 'owner' }
262
+
263
+ ### xxx\_tag
264
+
265
+ To get the value of the tag, some properties are created from the tags themselves.
266
+
267
+ For example, if the following tag is set on a resource:
268
+
269
+ * owner: JG Jinglehimerschmidt
270
+
271
+ Then a property is available called `Owner_tag`.
272
+
273
+ its('owner_tag') { should cmp 'JG Jinglehimerschmidt' }
274
+
275
+ Note: The tag name is case sensitive which makes the test case sensitive. E.g. `owner_tag` does not equal `Owner_tag`.
276
+
277
+ <br>
278
+
279
+ ## References
280
+
281
+ For more information on Azure Ruby SDK resources, see:
282
+
283
+ * [Azure Ruby SDK - Resources](https://github.com/Azure/azure-sdk-for-ruby/tree/master/management/azure_mgmt_resources)
284
+ * [Resource Group](https://github.com/chef/inspec/blob/fc990346f2438690f0ac36a9f6606e61574a79b8/test/azure/verify/controls/resource_group.rb)