inspec 2.0.16 → 2.0.17
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +101 -101
- data/CHANGELOG.md +2949 -2944
- data/Gemfile +55 -55
- data/LICENSE +14 -14
- data/MAINTAINERS.md +31 -31
- data/MAINTAINERS.toml +47 -47
- data/README.md +438 -438
- data/Rakefile +284 -284
- data/bin/inspec +12 -12
- data/docs/.gitignore +2 -2
- data/docs/README.md +40 -40
- data/docs/dsl_inspec.md +258 -258
- data/docs/dsl_resource.md +93 -93
- data/docs/glossary.md +99 -99
- data/docs/habitat.md +191 -191
- data/docs/inspec_and_friends.md +107 -107
- data/docs/matchers.md +165 -165
- data/docs/migration.md +293 -293
- data/docs/platforms.md +118 -118
- data/docs/plugin_kitchen_inspec.md +49 -49
- data/docs/profiles.md +370 -370
- data/docs/reporters.md +105 -105
- data/docs/resources/aide_conf.md.erb +75 -75
- data/docs/resources/apache.md.erb +67 -67
- data/docs/resources/apache_conf.md.erb +68 -68
- data/docs/resources/apt.md.erb +71 -71
- data/docs/resources/audit_policy.md.erb +47 -47
- data/docs/resources/auditd.md.erb +79 -79
- data/docs/resources/auditd_conf.md.erb +68 -68
- data/docs/resources/aws_cloudtrail_trail.md.erb +140 -140
- data/docs/resources/aws_cloudtrail_trails.md.erb +81 -81
- data/docs/resources/aws_cloudwatch_alarm.md.erb +86 -86
- data/docs/resources/aws_cloudwatch_log_metric_filter.md.erb +151 -151
- data/docs/resources/aws_ec2_instance.md.erb +106 -106
- data/docs/resources/aws_iam_access_key.md.erb +123 -123
- data/docs/resources/aws_iam_access_keys.md.erb +198 -198
- data/docs/resources/aws_iam_group.md.erb +46 -46
- data/docs/resources/aws_iam_groups.md.erb +43 -43
- data/docs/resources/aws_iam_password_policy.md.erb +76 -76
- data/docs/resources/aws_iam_policies.md.erb +82 -82
- data/docs/resources/aws_iam_policy.md.erb +146 -146
- data/docs/resources/aws_iam_role.md.erb +65 -65
- data/docs/resources/aws_iam_root_user.md.erb +58 -58
- data/docs/resources/aws_iam_user.md.erb +64 -64
- data/docs/resources/aws_iam_users.md.erb +89 -89
- data/docs/resources/aws_kms_keys.md.erb +84 -84
- data/docs/resources/aws_route_table.md.erb +47 -47
- data/docs/resources/aws_s3_bucket.md.erb +134 -134
- data/docs/resources/aws_security_group.md.erb +152 -152
- data/docs/resources/aws_security_groups.md.erb +92 -92
- data/docs/resources/aws_sns_topic.md.erb +62 -62
- data/docs/resources/aws_subnet.md.erb +133 -133
- data/docs/resources/aws_subnets.md.erb +126 -126
- data/docs/resources/aws_vpc.md.erb +120 -120
- data/docs/resources/aws_vpcs.md.erb +48 -48
- data/docs/resources/azure_generic_resource.md.erb +170 -139
- data/docs/resources/azure_resource_group.md.erb +284 -284
- data/docs/resources/azure_virtual_machine.md.erb +347 -314
- data/docs/resources/azure_virtual_machine_data_disk.md.erb +224 -182
- data/docs/resources/bash.md.erb +75 -75
- data/docs/resources/bond.md.erb +90 -90
- data/docs/resources/bridge.md.erb +57 -57
- data/docs/resources/bsd_service.md.erb +67 -67
- data/docs/resources/command.md.erb +138 -138
- data/docs/resources/cpan.md.erb +79 -79
- data/docs/resources/cran.md.erb +64 -64
- data/docs/resources/crontab.md.erb +88 -88
- data/docs/resources/csv.md.erb +54 -54
- data/docs/resources/dh_params.md.erb +217 -217
- data/docs/resources/directory.md.erb +30 -30
- data/docs/resources/docker.md.erb +164 -164
- data/docs/resources/docker_container.md.erb +104 -104
- data/docs/resources/docker_image.md.erb +94 -94
- data/docs/resources/docker_service.md.erb +114 -114
- data/docs/resources/elasticsearch.md.erb +242 -242
- data/docs/resources/etc_fstab.md.erb +125 -125
- data/docs/resources/etc_group.md.erb +75 -75
- data/docs/resources/etc_hosts.md.erb +78 -78
- data/docs/resources/etc_hosts_allow.md.erb +74 -74
- data/docs/resources/etc_hosts_deny.md.erb +74 -74
- data/docs/resources/file.md.erb +515 -515
- data/docs/resources/filesystem.md.erb +41 -41
- data/docs/resources/firewalld.md.erb +107 -107
- data/docs/resources/gem.md.erb +79 -79
- data/docs/resources/group.md.erb +61 -61
- data/docs/resources/grub_conf.md.erb +101 -101
- data/docs/resources/host.md.erb +78 -78
- data/docs/resources/http.md.erb +101 -101
- data/docs/resources/iis_app.md.erb +122 -122
- data/docs/resources/iis_site.md.erb +135 -135
- data/docs/resources/inetd_conf.md.erb +94 -94
- data/docs/resources/ini.md.erb +76 -76
- data/docs/resources/interface.md.erb +58 -58
- data/docs/resources/iptables.md.erb +64 -64
- data/docs/resources/json.md.erb +62 -62
- data/docs/resources/kernel_module.md.erb +107 -107
- data/docs/resources/kernel_parameter.md.erb +53 -53
- data/docs/resources/key_rsa.md.erb +85 -85
- data/docs/resources/launchd_service.md.erb +57 -57
- data/docs/resources/limits_conf.md.erb +75 -75
- data/docs/resources/login_def.md.erb +71 -71
- data/docs/resources/mount.md.erb +69 -69
- data/docs/resources/mssql_session.md.erb +60 -60
- data/docs/resources/mysql_conf.md.erb +99 -99
- data/docs/resources/mysql_session.md.erb +74 -74
- data/docs/resources/nginx.md.erb +79 -79
- data/docs/resources/nginx_conf.md.erb +128 -128
- data/docs/resources/npm.md.erb +60 -60
- data/docs/resources/ntp_conf.md.erb +60 -60
- data/docs/resources/oneget.md.erb +53 -53
- data/docs/resources/oracledb_session.md.erb +52 -52
- data/docs/resources/os.md.erb +141 -141
- data/docs/resources/os_env.md.erb +78 -78
- data/docs/resources/package.md.erb +120 -120
- data/docs/resources/packages.md.erb +67 -67
- data/docs/resources/parse_config.md.erb +103 -103
- data/docs/resources/parse_config_file.md.erb +138 -138
- data/docs/resources/passwd.md.erb +141 -141
- data/docs/resources/pip.md.erb +67 -67
- data/docs/resources/port.md.erb +137 -137
- data/docs/resources/postgres_conf.md.erb +79 -79
- data/docs/resources/postgres_hba_conf.md.erb +93 -93
- data/docs/resources/postgres_ident_conf.md.erb +76 -76
- data/docs/resources/postgres_session.md.erb +69 -69
- data/docs/resources/powershell.md.erb +102 -102
- data/docs/resources/processes.md.erb +109 -109
- data/docs/resources/rabbitmq_config.md.erb +41 -41
- data/docs/resources/registry_key.md.erb +158 -158
- data/docs/resources/runit_service.md.erb +57 -57
- data/docs/resources/security_policy.md.erb +47 -47
- data/docs/resources/service.md.erb +121 -121
- data/docs/resources/shadow.md.erb +144 -144
- data/docs/resources/ssh_config.md.erb +80 -80
- data/docs/resources/sshd_config.md.erb +83 -83
- data/docs/resources/ssl.md.erb +119 -119
- data/docs/resources/sys_info.md.erb +42 -42
- data/docs/resources/systemd_service.md.erb +57 -57
- data/docs/resources/sysv_service.md.erb +57 -57
- data/docs/resources/upstart_service.md.erb +57 -57
- data/docs/resources/user.md.erb +140 -140
- data/docs/resources/users.md.erb +127 -127
- data/docs/resources/vbscript.md.erb +55 -55
- data/docs/resources/virtualization.md.erb +57 -57
- data/docs/resources/windows_feature.md.erb +47 -47
- data/docs/resources/windows_hotfix.md.erb +53 -53
- data/docs/resources/windows_task.md.erb +95 -95
- data/docs/resources/wmi.md.erb +81 -81
- data/docs/resources/x509_certificate.md.erb +151 -151
- data/docs/resources/xinetd_conf.md.erb +156 -156
- data/docs/resources/xml.md.erb +85 -85
- data/docs/resources/yaml.md.erb +69 -69
- data/docs/resources/yum.md.erb +98 -98
- data/docs/resources/zfs_dataset.md.erb +53 -53
- data/docs/resources/zfs_pool.md.erb +47 -47
- data/docs/ruby_usage.md +203 -203
- data/docs/shared/matcher_be.md.erb +1 -1
- data/docs/shared/matcher_cmp.md.erb +43 -43
- data/docs/shared/matcher_eq.md.erb +3 -3
- data/docs/shared/matcher_include.md.erb +1 -1
- data/docs/shared/matcher_match.md.erb +1 -1
- data/docs/shell.md +172 -172
- data/examples/README.md +8 -8
- data/examples/inheritance/README.md +65 -65
- data/examples/inheritance/controls/example.rb +14 -14
- data/examples/inheritance/inspec.yml +15 -15
- data/examples/kitchen-ansible/.kitchen.yml +25 -25
- data/examples/kitchen-ansible/Gemfile +19 -19
- data/examples/kitchen-ansible/README.md +53 -53
- data/examples/kitchen-ansible/files/nginx.repo +6 -6
- data/examples/kitchen-ansible/tasks/main.yml +16 -16
- data/examples/kitchen-ansible/test/integration/default/default.yml +5 -5
- data/examples/kitchen-ansible/test/integration/default/web_spec.rb +28 -28
- data/examples/kitchen-chef/.kitchen.yml +20 -20
- data/examples/kitchen-chef/Berksfile +3 -3
- data/examples/kitchen-chef/Gemfile +19 -19
- data/examples/kitchen-chef/README.md +27 -27
- data/examples/kitchen-chef/metadata.rb +7 -7
- data/examples/kitchen-chef/recipes/default.rb +6 -6
- data/examples/kitchen-chef/recipes/nginx.rb +30 -30
- data/examples/kitchen-chef/test/integration/default/web_spec.rb +28 -28
- data/examples/kitchen-puppet/.kitchen.yml +22 -22
- data/examples/kitchen-puppet/Gemfile +20 -20
- data/examples/kitchen-puppet/Puppetfile +25 -25
- data/examples/kitchen-puppet/README.md +53 -53
- data/examples/kitchen-puppet/manifests/site.pp +33 -33
- data/examples/kitchen-puppet/metadata.json +11 -11
- data/examples/kitchen-puppet/test/integration/default/web_spec.rb +28 -28
- data/examples/meta-profile/README.md +37 -37
- data/examples/meta-profile/controls/example.rb +13 -13
- data/examples/meta-profile/inspec.yml +13 -13
- data/examples/profile-attribute.yml +2 -2
- data/examples/profile-attribute/README.md +14 -14
- data/examples/profile-attribute/controls/example.rb +11 -11
- data/examples/profile-attribute/inspec.yml +8 -8
- data/examples/profile-aws/controls/iam_password_policy_expiration.rb +8 -8
- data/examples/profile-aws/controls/iam_password_policy_max_age.rb +8 -8
- data/examples/profile-aws/controls/iam_root_user_mfa.rb +8 -8
- data/examples/profile-aws/controls/iam_users_access_key_age.rb +8 -8
- data/examples/profile-aws/controls/iam_users_console_users_mfa.rb +8 -8
- data/examples/profile-aws/inspec.yml +11 -11
- data/examples/profile-azure/controls/azure_resource_group_example.rb +24 -24
- data/examples/profile-azure/controls/azure_vm_example.rb +29 -29
- data/examples/profile-azure/inspec.yml +11 -11
- data/examples/profile-sensitive/README.md +29 -29
- data/examples/profile-sensitive/controls/sensitive-failures.rb +9 -9
- data/examples/profile-sensitive/controls/sensitive.rb +9 -9
- data/examples/profile-sensitive/inspec.yml +8 -8
- data/examples/profile/README.md +48 -48
- data/examples/profile/controls/example.rb +23 -23
- data/examples/profile/controls/gordon.rb +36 -36
- data/examples/profile/controls/meta.rb +34 -34
- data/examples/profile/inspec.yml +10 -10
- data/examples/profile/libraries/gordon_config.rb +53 -53
- data/inspec.gemspec +47 -47
- data/lib/bundles/README.md +3 -3
- data/lib/bundles/inspec-artifact.rb +7 -7
- data/lib/bundles/inspec-artifact/README.md +1 -1
- data/lib/bundles/inspec-artifact/cli.rb +277 -277
- data/lib/bundles/inspec-compliance.rb +16 -16
- data/lib/bundles/inspec-compliance/.kitchen.yml +20 -20
- data/lib/bundles/inspec-compliance/README.md +185 -185
- data/lib/bundles/inspec-compliance/api.rb +316 -316
- data/lib/bundles/inspec-compliance/api/login.rb +152 -152
- data/lib/bundles/inspec-compliance/bootstrap.sh +41 -41
- data/lib/bundles/inspec-compliance/cli.rb +254 -254
- data/lib/bundles/inspec-compliance/configuration.rb +103 -103
- data/lib/bundles/inspec-compliance/http.rb +86 -86
- data/lib/bundles/inspec-compliance/support.rb +36 -36
- data/lib/bundles/inspec-compliance/target.rb +98 -98
- data/lib/bundles/inspec-compliance/test/integration/default/cli.rb +93 -93
- data/lib/bundles/inspec-habitat.rb +12 -12
- data/lib/bundles/inspec-habitat/cli.rb +36 -36
- data/lib/bundles/inspec-habitat/log.rb +10 -10
- data/lib/bundles/inspec-habitat/profile.rb +390 -390
- data/lib/bundles/inspec-init.rb +8 -8
- data/lib/bundles/inspec-init/README.md +31 -31
- data/lib/bundles/inspec-init/cli.rb +97 -97
- data/lib/bundles/inspec-init/templates/profile/README.md +3 -3
- data/lib/bundles/inspec-init/templates/profile/controls/example.rb +19 -19
- data/lib/bundles/inspec-init/templates/profile/inspec.yml +8 -8
- data/lib/bundles/inspec-supermarket.rb +13 -13
- data/lib/bundles/inspec-supermarket/README.md +45 -45
- data/lib/bundles/inspec-supermarket/api.rb +84 -84
- data/lib/bundles/inspec-supermarket/cli.rb +73 -73
- data/lib/bundles/inspec-supermarket/target.rb +34 -34
- data/lib/fetchers/git.rb +163 -163
- data/lib/fetchers/local.rb +74 -74
- data/lib/fetchers/mock.rb +35 -35
- data/lib/fetchers/url.rb +204 -204
- data/lib/inspec.rb +24 -24
- data/lib/inspec/archive/tar.rb +29 -29
- data/lib/inspec/archive/zip.rb +19 -19
- data/lib/inspec/backend.rb +92 -92
- data/lib/inspec/base_cli.rb +350 -333
- data/lib/inspec/cached_fetcher.rb +66 -66
- data/lib/inspec/cli.rb +292 -302
- data/lib/inspec/completions/bash.sh.erb +45 -45
- data/lib/inspec/completions/fish.sh.erb +34 -34
- data/lib/inspec/completions/zsh.sh.erb +61 -61
- data/lib/inspec/control_eval_context.rb +179 -179
- data/lib/inspec/dependencies/cache.rb +72 -72
- data/lib/inspec/dependencies/dependency_set.rb +92 -92
- data/lib/inspec/dependencies/lockfile.rb +115 -115
- data/lib/inspec/dependencies/requirement.rb +123 -123
- data/lib/inspec/dependencies/resolver.rb +86 -86
- data/lib/inspec/describe.rb +27 -27
- data/lib/inspec/dsl.rb +66 -66
- data/lib/inspec/dsl_shared.rb +33 -33
- data/lib/inspec/env_printer.rb +157 -157
- data/lib/inspec/errors.rb +13 -13
- data/lib/inspec/exceptions.rb +12 -12
- data/lib/inspec/expect.rb +45 -45
- data/lib/inspec/fetcher.rb +45 -45
- data/lib/inspec/file_provider.rb +275 -275
- data/lib/inspec/formatters.rb +3 -3
- data/lib/inspec/formatters/base.rb +250 -250
- data/lib/inspec/formatters/json_rspec.rb +20 -20
- data/lib/inspec/formatters/show_progress.rb +12 -12
- data/lib/inspec/library_eval_context.rb +58 -58
- data/lib/inspec/log.rb +11 -11
- data/lib/inspec/metadata.rb +247 -247
- data/lib/inspec/method_source.rb +24 -24
- data/lib/inspec/objects.rb +14 -14
- data/lib/inspec/objects/attribute.rb +65 -65
- data/lib/inspec/objects/control.rb +61 -61
- data/lib/inspec/objects/describe.rb +92 -92
- data/lib/inspec/objects/each_loop.rb +36 -36
- data/lib/inspec/objects/list.rb +15 -15
- data/lib/inspec/objects/or_test.rb +40 -40
- data/lib/inspec/objects/ruby_helper.rb +15 -15
- data/lib/inspec/objects/tag.rb +27 -27
- data/lib/inspec/objects/test.rb +87 -87
- data/lib/inspec/objects/value.rb +27 -27
- data/lib/inspec/plugins.rb +60 -60
- data/lib/inspec/plugins/cli.rb +24 -24
- data/lib/inspec/plugins/fetcher.rb +86 -86
- data/lib/inspec/plugins/resource.rb +133 -133
- data/lib/inspec/plugins/secret.rb +15 -15
- data/lib/inspec/plugins/source_reader.rb +40 -40
- data/lib/inspec/polyfill.rb +12 -12
- data/lib/inspec/profile.rb +510 -510
- data/lib/inspec/profile_context.rb +207 -207
- data/lib/inspec/profile_vendor.rb +66 -66
- data/lib/inspec/reporters.rb +50 -50
- data/lib/inspec/reporters/base.rb +24 -24
- data/lib/inspec/reporters/cli.rb +356 -356
- data/lib/inspec/reporters/json.rb +116 -116
- data/lib/inspec/reporters/json_min.rb +48 -48
- data/lib/inspec/reporters/junit.rb +77 -77
- data/lib/inspec/require_loader.rb +33 -33
- data/lib/inspec/resource.rb +186 -186
- data/lib/inspec/rule.rb +266 -266
- data/lib/inspec/runner.rb +344 -344
- data/lib/inspec/runner_mock.rb +41 -41
- data/lib/inspec/runner_rspec.rb +174 -174
- data/lib/inspec/runtime_profile.rb +26 -26
- data/lib/inspec/schema.rb +213 -213
- data/lib/inspec/secrets.rb +19 -19
- data/lib/inspec/secrets/yaml.rb +30 -30
- data/lib/inspec/shell.rb +220 -223
- data/lib/inspec/shell_detector.rb +90 -90
- data/lib/inspec/source_reader.rb +29 -29
- data/lib/inspec/version.rb +8 -8
- data/lib/matchers/matchers.rb +339 -339
- data/lib/resource_support/aws.rb +40 -40
- data/lib/resource_support/aws/aws_backend_base.rb +12 -12
- data/lib/resource_support/aws/aws_backend_factory_mixin.rb +12 -12
- data/lib/resource_support/aws/aws_plural_resource_mixin.rb +21 -21
- data/lib/resource_support/aws/aws_resource_mixin.rb +66 -66
- data/lib/resource_support/aws/aws_singular_resource_mixin.rb +24 -24
- data/lib/resources/aide_conf.rb +160 -160
- data/lib/resources/apache.rb +48 -48
- data/lib/resources/apache_conf.rb +156 -156
- data/lib/resources/apt.rb +149 -149
- data/lib/resources/audit_policy.rb +63 -63
- data/lib/resources/auditd.rb +231 -231
- data/lib/resources/auditd_conf.rb +55 -55
- data/lib/resources/aws/aws_cloudtrail_trail.rb +77 -77
- data/lib/resources/aws/aws_cloudtrail_trails.rb +47 -47
- data/lib/resources/aws/aws_cloudwatch_alarm.rb +62 -62
- data/lib/resources/aws/aws_cloudwatch_log_metric_filter.rb +100 -100
- data/lib/resources/aws/aws_ec2_instance.rb +157 -157
- data/lib/resources/aws/aws_iam_access_key.rb +106 -106
- data/lib/resources/aws/aws_iam_access_keys.rb +144 -144
- data/lib/resources/aws/aws_iam_group.rb +56 -56
- data/lib/resources/aws/aws_iam_groups.rb +45 -45
- data/lib/resources/aws/aws_iam_password_policy.rb +116 -116
- data/lib/resources/aws/aws_iam_policies.rb +46 -46
- data/lib/resources/aws/aws_iam_policy.rb +119 -119
- data/lib/resources/aws/aws_iam_role.rb +51 -51
- data/lib/resources/aws/aws_iam_root_user.rb +60 -60
- data/lib/resources/aws/aws_iam_user.rb +111 -111
- data/lib/resources/aws/aws_iam_users.rb +96 -96
- data/lib/resources/aws/aws_kms_keys.rb +46 -46
- data/lib/resources/aws/aws_route_table.rb +61 -61
- data/lib/resources/aws/aws_s3_bucket.rb +115 -115
- data/lib/resources/aws/aws_security_group.rb +93 -93
- data/lib/resources/aws/aws_security_groups.rb +68 -68
- data/lib/resources/aws/aws_sns_topic.rb +53 -53
- data/lib/resources/aws/aws_subnet.rb +88 -88
- data/lib/resources/aws/aws_subnets.rb +53 -53
- data/lib/resources/aws/aws_vpc.rb +69 -69
- data/lib/resources/aws/aws_vpcs.rb +45 -45
- data/lib/resources/azure/azure_backend.rb +377 -377
- data/lib/resources/azure/azure_generic_resource.rb +59 -59
- data/lib/resources/azure/azure_resource_group.rb +152 -152
- data/lib/resources/azure/azure_virtual_machine.rb +264 -264
- data/lib/resources/azure/azure_virtual_machine_data_disk.rb +136 -136
- data/lib/resources/bash.rb +35 -35
- data/lib/resources/bond.rb +68 -68
- data/lib/resources/bridge.rb +122 -122
- data/lib/resources/command.rb +69 -69
- data/lib/resources/cpan.rb +58 -58
- data/lib/resources/cran.rb +64 -64
- data/lib/resources/crontab.rb +170 -170
- data/lib/resources/csv.rb +60 -60
- data/lib/resources/dh_params.rb +82 -82
- data/lib/resources/directory.rb +25 -25
- data/lib/resources/docker.rb +236 -236
- data/lib/resources/docker_container.rb +89 -89
- data/lib/resources/docker_image.rb +83 -83
- data/lib/resources/docker_object.rb +57 -57
- data/lib/resources/docker_service.rb +90 -90
- data/lib/resources/elasticsearch.rb +169 -169
- data/lib/resources/etc_fstab.rb +102 -102
- data/lib/resources/etc_group.rb +156 -156
- data/lib/resources/etc_hosts.rb +81 -81
- data/lib/resources/etc_hosts_allow_deny.rb +123 -123
- data/lib/resources/file.rb +298 -298
- data/lib/resources/filesystem.rb +31 -31
- data/lib/resources/firewalld.rb +144 -144
- data/lib/resources/gem.rb +70 -70
- data/lib/resources/groups.rb +215 -215
- data/lib/resources/grub_conf.rb +237 -237
- data/lib/resources/host.rb +300 -300
- data/lib/resources/http.rb +250 -250
- data/lib/resources/iis_app.rb +104 -104
- data/lib/resources/iis_site.rb +148 -148
- data/lib/resources/inetd_conf.rb +62 -62
- data/lib/resources/ini.rb +29 -29
- data/lib/resources/interface.rb +129 -129
- data/lib/resources/iptables.rb +69 -69
- data/lib/resources/json.rb +117 -117
- data/lib/resources/kernel_module.rb +107 -107
- data/lib/resources/kernel_parameter.rb +58 -58
- data/lib/resources/key_rsa.rb +67 -67
- data/lib/resources/limits_conf.rb +55 -55
- data/lib/resources/login_def.rb +66 -66
- data/lib/resources/mount.rb +88 -88
- data/lib/resources/mssql_session.rb +101 -101
- data/lib/resources/mysql.rb +81 -81
- data/lib/resources/mysql_conf.rb +134 -134
- data/lib/resources/mysql_session.rb +71 -71
- data/lib/resources/nginx.rb +96 -96
- data/lib/resources/nginx_conf.rb +227 -227
- data/lib/resources/npm.rb +48 -48
- data/lib/resources/ntp_conf.rb +58 -58
- data/lib/resources/oneget.rb +71 -71
- data/lib/resources/oracledb_session.rb +139 -139
- data/lib/resources/os.rb +36 -36
- data/lib/resources/os_env.rb +76 -76
- data/lib/resources/package.rb +363 -363
- data/lib/resources/packages.rb +111 -111
- data/lib/resources/parse_config.rb +116 -116
- data/lib/resources/passwd.rb +74 -74
- data/lib/resources/pip.rb +89 -89
- data/lib/resources/platform.rb +109 -109
- data/lib/resources/port.rb +771 -771
- data/lib/resources/postgres.rb +130 -130
- data/lib/resources/postgres_conf.rb +121 -121
- data/lib/resources/postgres_hba_conf.rb +100 -100
- data/lib/resources/postgres_ident_conf.rb +78 -78
- data/lib/resources/postgres_session.rb +71 -71
- data/lib/resources/powershell.rb +57 -57
- data/lib/resources/processes.rb +204 -204
- data/lib/resources/rabbitmq_conf.rb +52 -52
- data/lib/resources/registry_key.rb +296 -296
- data/lib/resources/security_policy.rb +180 -180
- data/lib/resources/service.rb +789 -789
- data/lib/resources/shadow.rb +140 -140
- data/lib/resources/ssh_conf.rb +102 -102
- data/lib/resources/ssl.rb +99 -99
- data/lib/resources/sys_info.rb +28 -28
- data/lib/resources/toml.rb +32 -32
- data/lib/resources/users.rb +654 -654
- data/lib/resources/vbscript.rb +69 -69
- data/lib/resources/virtualization.rb +251 -251
- data/lib/resources/windows_feature.rb +84 -84
- data/lib/resources/windows_hotfix.rb +35 -35
- data/lib/resources/windows_task.rb +105 -105
- data/lib/resources/wmi.rb +113 -113
- data/lib/resources/x509_certificate.rb +143 -143
- data/lib/resources/xinetd.rb +111 -111
- data/lib/resources/xml.rb +46 -46
- data/lib/resources/yaml.rb +47 -47
- data/lib/resources/yum.rb +180 -180
- data/lib/resources/zfs_dataset.rb +60 -60
- data/lib/resources/zfs_pool.rb +49 -49
- data/lib/source_readers/flat.rb +39 -39
- data/lib/source_readers/inspec.rb +75 -75
- data/lib/utils/command_wrapper.rb +27 -27
- data/lib/utils/convert.rb +12 -12
- data/lib/utils/database_helpers.rb +77 -77
- data/lib/utils/erlang_parser.rb +192 -192
- data/lib/utils/filter.rb +272 -272
- data/lib/utils/filter_array.rb +27 -27
- data/lib/utils/find_files.rb +44 -44
- data/lib/utils/hash.rb +41 -41
- data/lib/utils/json_log.rb +18 -18
- data/lib/utils/latest_version.rb +22 -22
- data/lib/utils/modulator.rb +12 -12
- data/lib/utils/nginx_parser.rb +85 -85
- data/lib/utils/object_traversal.rb +49 -49
- data/lib/utils/parser.rb +274 -274
- data/lib/utils/plugin_registry.rb +93 -93
- data/lib/utils/simpleconfig.rb +120 -120
- data/lib/utils/spdx.rb +13 -13
- data/lib/utils/spdx.txt +343 -343
- metadata +1 -1
@@ -1,41 +1,41 @@
|
|
1
|
-
---
|
2
|
-
title: About the rabbitmq_config Resource
|
3
|
-
platform: linux
|
4
|
-
---
|
5
|
-
|
6
|
-
# rabbitmq_config
|
7
|
-
|
8
|
-
Use the `rabbitmq_config` InSpec audit resource to test configuration data for the RabbitMQ daemon located at `/etc/rabbitmq/rabbitmq.config` on Linux and Unix platforms.
|
9
|
-
|
10
|
-
<br>
|
11
|
-
|
12
|
-
## Syntax
|
13
|
-
|
14
|
-
A `rabbitmq_config` resource block declares the RabbitMQ configuration data to be tested:
|
15
|
-
|
16
|
-
describe rabbitmq_config.params('rabbit', 'ssl_listeners') do
|
17
|
-
it { should cmp 5671 }
|
18
|
-
end
|
19
|
-
|
20
|
-
where
|
21
|
-
|
22
|
-
* `params` is the list of parameters configured in the RabbitMQ config file
|
23
|
-
* `{ should cmp 5671 }` tests the value of `rabbit.ssl_listeners` as read from `rabbitmq.config` versus the value declared in the test
|
24
|
-
|
25
|
-
<br>
|
26
|
-
|
27
|
-
## Examples
|
28
|
-
|
29
|
-
The following examples show how to use this InSpec audit resource.
|
30
|
-
|
31
|
-
### Test the list of TCP listeners
|
32
|
-
|
33
|
-
describe rabbitmq_config.params('rabbit', 'tcp_listeners') do
|
34
|
-
it { should eq [5672] }
|
35
|
-
end
|
36
|
-
|
37
|
-
<br>
|
38
|
-
|
39
|
-
## Matchers
|
40
|
-
|
41
|
-
For a full list of available matchers, please visit our [matchers page](https://www.inspec.io/docs/reference/matchers/).
|
1
|
+
---
|
2
|
+
title: About the rabbitmq_config Resource
|
3
|
+
platform: linux
|
4
|
+
---
|
5
|
+
|
6
|
+
# rabbitmq_config
|
7
|
+
|
8
|
+
Use the `rabbitmq_config` InSpec audit resource to test configuration data for the RabbitMQ daemon located at `/etc/rabbitmq/rabbitmq.config` on Linux and Unix platforms.
|
9
|
+
|
10
|
+
<br>
|
11
|
+
|
12
|
+
## Syntax
|
13
|
+
|
14
|
+
A `rabbitmq_config` resource block declares the RabbitMQ configuration data to be tested:
|
15
|
+
|
16
|
+
describe rabbitmq_config.params('rabbit', 'ssl_listeners') do
|
17
|
+
it { should cmp 5671 }
|
18
|
+
end
|
19
|
+
|
20
|
+
where
|
21
|
+
|
22
|
+
* `params` is the list of parameters configured in the RabbitMQ config file
|
23
|
+
* `{ should cmp 5671 }` tests the value of `rabbit.ssl_listeners` as read from `rabbitmq.config` versus the value declared in the test
|
24
|
+
|
25
|
+
<br>
|
26
|
+
|
27
|
+
## Examples
|
28
|
+
|
29
|
+
The following examples show how to use this InSpec audit resource.
|
30
|
+
|
31
|
+
### Test the list of TCP listeners
|
32
|
+
|
33
|
+
describe rabbitmq_config.params('rabbit', 'tcp_listeners') do
|
34
|
+
it { should eq [5672] }
|
35
|
+
end
|
36
|
+
|
37
|
+
<br>
|
38
|
+
|
39
|
+
## Matchers
|
40
|
+
|
41
|
+
For a full list of available matchers, please visit our [matchers page](https://www.inspec.io/docs/reference/matchers/).
|
@@ -1,158 +1,158 @@
|
|
1
|
-
---
|
2
|
-
title: About the registry_key Resource
|
3
|
-
platform: windows
|
4
|
-
---
|
5
|
-
|
6
|
-
# registry_key
|
7
|
-
|
8
|
-
Use the `registry_key` InSpec audit resource to test key values in the Windows registry.
|
9
|
-
|
10
|
-
<br>
|
11
|
-
|
12
|
-
## Syntax
|
13
|
-
|
14
|
-
A `registry_key` resource block declares the item in the Windows registry, the path to a setting under that item, and then one (or more) name/value pairs to be tested.
|
15
|
-
|
16
|
-
Use a registry key name and path:
|
17
|
-
|
18
|
-
describe registry_key('Task Scheduler','HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Schedule') do
|
19
|
-
its('Start') { should eq 2 }
|
20
|
-
end
|
21
|
-
|
22
|
-
Use only a registry key path:
|
23
|
-
|
24
|
-
describe registry_key('Task Scheduler','HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Schedule') do
|
25
|
-
its('Start') { should eq 2 }
|
26
|
-
end
|
27
|
-
|
28
|
-
Or use a Ruby Hash:
|
29
|
-
|
30
|
-
describe registry_key({
|
31
|
-
name: 'Task Scheduler',
|
32
|
-
hive: 'HKEY_LOCAL_MACHINE',
|
33
|
-
key: '\SYSTEM\CurrentControlSet\services\Schedule'
|
34
|
-
}) do
|
35
|
-
its('Start') { should eq 2 }
|
36
|
-
end
|
37
|
-
|
38
|
-
|
39
|
-
### Registry Key Path Separators
|
40
|
-
|
41
|
-
A Windows registry key can be used as a string in Ruby code, such as when a registry key is used as the name of a recipe. In Ruby, when a registry key is enclosed in a double-quoted string (`" "`), the same backslash character (`\`) that is used to define the registry key path separator is also used in Ruby to define an escape character. Therefore, the registry key path separators must be escaped when they are enclosed in a double-quoted string. For example, the following registry key:
|
42
|
-
|
43
|
-
HKCU\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Themes
|
44
|
-
|
45
|
-
may be encloused in a single-quoted string with a single backslash:
|
46
|
-
|
47
|
-
'HKCU\SOFTWARE\path\to\key\Themes'
|
48
|
-
|
49
|
-
or may be enclosed in a double-quoted string with an extra backslash as an escape character:
|
50
|
-
|
51
|
-
"HKCU\\SOFTWARE\\path\\to\\key\\Themes"
|
52
|
-
|
53
|
-
|
54
|
-
<p class="warning">
|
55
|
-
Please make sure that you use backslashes instead of forward slashes. Forward slashes will not work for registry keys.
|
56
|
-
</p>
|
57
|
-
|
58
|
-
# The following will not work:
|
59
|
-
# describe registry_key('HKLM/SOFTWARE/Microsoft/NET Framework Setup/NDP/v4/Full/1033') do
|
60
|
-
# its('Release') { should eq 378675 }
|
61
|
-
# end
|
62
|
-
# You should use:
|
63
|
-
describe registry_key('HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full\1033') do
|
64
|
-
its('Release') { should eq 378675 }
|
65
|
-
end
|
66
|
-
|
67
|
-
<br>
|
68
|
-
|
69
|
-
## Examples
|
70
|
-
|
71
|
-
The following examples show how to use this InSpec audit resource.
|
72
|
-
|
73
|
-
### Test the start time for the Schedule service
|
74
|
-
|
75
|
-
describe registry_key('Task Scheduler','HKEY_LOCAL_MACHINE\...\Schedule') do
|
76
|
-
its('Start') { should eq 2 }
|
77
|
-
end
|
78
|
-
|
79
|
-
where `'HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Schedule'` is the full path to the setting.
|
80
|
-
|
81
|
-
### Use a regular expression in responses
|
82
|
-
|
83
|
-
describe registry_key({
|
84
|
-
hive: 'HKEY_LOCAL_MACHINE',
|
85
|
-
key: 'SOFTWARE\Microsoft\Windows NT\CurrentVersion'
|
86
|
-
}) do
|
87
|
-
its('ProductName') { should match /^[a-zA-Z0-9\(\)\s]*2012\s[rR]2[a-zA-Z0-9\(\)\s]*$/ }
|
88
|
-
end
|
89
|
-
|
90
|
-
<br>
|
91
|
-
|
92
|
-
## Matchers
|
93
|
-
|
94
|
-
For a full list of available matchers, please visit our [matchers page](https://www.inspec.io/docs/reference/matchers/).
|
95
|
-
|
96
|
-
### children
|
97
|
-
|
98
|
-
The `children` matcher return all of the child items of a registry key. A regular expression may be used to filter child items:
|
99
|
-
|
100
|
-
describe registry_key('Key Name', '\path\to\key').children(regex)
|
101
|
-
...
|
102
|
-
end
|
103
|
-
|
104
|
-
For example, to get all child items for a registry key:
|
105
|
-
|
106
|
-
describe registry_key('Task Scheduler','HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet').children do
|
107
|
-
it { should_not eq [] }
|
108
|
-
end
|
109
|
-
|
110
|
-
The following example shows how find a property that may exist against multiple registry keys, and then test that property for every registry key in which that property is located:
|
111
|
-
|
112
|
-
describe registry_key({
|
113
|
-
hive: 'HKEY_USERS'
|
114
|
-
}).children(/^S-1-5-21-[0-9]+-[0-9]+-[0-9]+-[0-9]{3,}\\Software\\Policies\\Microsoft\\Windows\\Installer/).each { |key|
|
115
|
-
describe registry_key(key) do
|
116
|
-
its('AlwaysInstallElevated') { should eq 'value' }
|
117
|
-
end
|
118
|
-
}
|
119
|
-
|
120
|
-
### exist
|
121
|
-
|
122
|
-
The `exist` matcher tests if the registry key is present:
|
123
|
-
|
124
|
-
it { should exist }
|
125
|
-
|
126
|
-
### have_property
|
127
|
-
|
128
|
-
The `have_property` matcher tests if a property exists for a registry key:
|
129
|
-
|
130
|
-
it { should have_property 'value' }
|
131
|
-
|
132
|
-
### have\_property\_value
|
133
|
-
|
134
|
-
The `have_property_value` matcher tests if a property value exists for a registry key:
|
135
|
-
|
136
|
-
it { should have_property_value 'value' }
|
137
|
-
|
138
|
-
### have_value
|
139
|
-
|
140
|
-
The `have_value` matcher tests if a value exists for a registry key:
|
141
|
-
|
142
|
-
it { should have_value 'value' }
|
143
|
-
|
144
|
-
### name
|
145
|
-
|
146
|
-
The `name` matcher tests the value for the specified registry setting:
|
147
|
-
|
148
|
-
its('name') { should eq 'value' }
|
149
|
-
|
150
|
-
|
151
|
-
<p class="warning">
|
152
|
-
Any name with a dot will not work as expected: <code>its('explorer.exe') { should eq 'test' }</code>. This issue is tracked in <a href="https://github.com/chef/inspec/issues/1281">https://github.com/chef/inspec/issues/1281</a>
|
153
|
-
</p>
|
154
|
-
|
155
|
-
# instead of:
|
156
|
-
# its('explorer.exe') { should eq 'test' }
|
157
|
-
# use the following solution:
|
158
|
-
it { should have_property_value('explorer.exe', :string, 'test') }
|
1
|
+
---
|
2
|
+
title: About the registry_key Resource
|
3
|
+
platform: windows
|
4
|
+
---
|
5
|
+
|
6
|
+
# registry_key
|
7
|
+
|
8
|
+
Use the `registry_key` InSpec audit resource to test key values in the Windows registry.
|
9
|
+
|
10
|
+
<br>
|
11
|
+
|
12
|
+
## Syntax
|
13
|
+
|
14
|
+
A `registry_key` resource block declares the item in the Windows registry, the path to a setting under that item, and then one (or more) name/value pairs to be tested.
|
15
|
+
|
16
|
+
Use a registry key name and path:
|
17
|
+
|
18
|
+
describe registry_key('Task Scheduler','HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Schedule') do
|
19
|
+
its('Start') { should eq 2 }
|
20
|
+
end
|
21
|
+
|
22
|
+
Use only a registry key path:
|
23
|
+
|
24
|
+
describe registry_key('Task Scheduler','HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Schedule') do
|
25
|
+
its('Start') { should eq 2 }
|
26
|
+
end
|
27
|
+
|
28
|
+
Or use a Ruby Hash:
|
29
|
+
|
30
|
+
describe registry_key({
|
31
|
+
name: 'Task Scheduler',
|
32
|
+
hive: 'HKEY_LOCAL_MACHINE',
|
33
|
+
key: '\SYSTEM\CurrentControlSet\services\Schedule'
|
34
|
+
}) do
|
35
|
+
its('Start') { should eq 2 }
|
36
|
+
end
|
37
|
+
|
38
|
+
|
39
|
+
### Registry Key Path Separators
|
40
|
+
|
41
|
+
A Windows registry key can be used as a string in Ruby code, such as when a registry key is used as the name of a recipe. In Ruby, when a registry key is enclosed in a double-quoted string (`" "`), the same backslash character (`\`) that is used to define the registry key path separator is also used in Ruby to define an escape character. Therefore, the registry key path separators must be escaped when they are enclosed in a double-quoted string. For example, the following registry key:
|
42
|
+
|
43
|
+
HKCU\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Themes
|
44
|
+
|
45
|
+
may be encloused in a single-quoted string with a single backslash:
|
46
|
+
|
47
|
+
'HKCU\SOFTWARE\path\to\key\Themes'
|
48
|
+
|
49
|
+
or may be enclosed in a double-quoted string with an extra backslash as an escape character:
|
50
|
+
|
51
|
+
"HKCU\\SOFTWARE\\path\\to\\key\\Themes"
|
52
|
+
|
53
|
+
|
54
|
+
<p class="warning">
|
55
|
+
Please make sure that you use backslashes instead of forward slashes. Forward slashes will not work for registry keys.
|
56
|
+
</p>
|
57
|
+
|
58
|
+
# The following will not work:
|
59
|
+
# describe registry_key('HKLM/SOFTWARE/Microsoft/NET Framework Setup/NDP/v4/Full/1033') do
|
60
|
+
# its('Release') { should eq 378675 }
|
61
|
+
# end
|
62
|
+
# You should use:
|
63
|
+
describe registry_key('HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full\1033') do
|
64
|
+
its('Release') { should eq 378675 }
|
65
|
+
end
|
66
|
+
|
67
|
+
<br>
|
68
|
+
|
69
|
+
## Examples
|
70
|
+
|
71
|
+
The following examples show how to use this InSpec audit resource.
|
72
|
+
|
73
|
+
### Test the start time for the Schedule service
|
74
|
+
|
75
|
+
describe registry_key('Task Scheduler','HKEY_LOCAL_MACHINE\...\Schedule') do
|
76
|
+
its('Start') { should eq 2 }
|
77
|
+
end
|
78
|
+
|
79
|
+
where `'HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Schedule'` is the full path to the setting.
|
80
|
+
|
81
|
+
### Use a regular expression in responses
|
82
|
+
|
83
|
+
describe registry_key({
|
84
|
+
hive: 'HKEY_LOCAL_MACHINE',
|
85
|
+
key: 'SOFTWARE\Microsoft\Windows NT\CurrentVersion'
|
86
|
+
}) do
|
87
|
+
its('ProductName') { should match /^[a-zA-Z0-9\(\)\s]*2012\s[rR]2[a-zA-Z0-9\(\)\s]*$/ }
|
88
|
+
end
|
89
|
+
|
90
|
+
<br>
|
91
|
+
|
92
|
+
## Matchers
|
93
|
+
|
94
|
+
For a full list of available matchers, please visit our [matchers page](https://www.inspec.io/docs/reference/matchers/).
|
95
|
+
|
96
|
+
### children
|
97
|
+
|
98
|
+
The `children` matcher return all of the child items of a registry key. A regular expression may be used to filter child items:
|
99
|
+
|
100
|
+
describe registry_key('Key Name', '\path\to\key').children(regex)
|
101
|
+
...
|
102
|
+
end
|
103
|
+
|
104
|
+
For example, to get all child items for a registry key:
|
105
|
+
|
106
|
+
describe registry_key('Task Scheduler','HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet').children do
|
107
|
+
it { should_not eq [] }
|
108
|
+
end
|
109
|
+
|
110
|
+
The following example shows how find a property that may exist against multiple registry keys, and then test that property for every registry key in which that property is located:
|
111
|
+
|
112
|
+
describe registry_key({
|
113
|
+
hive: 'HKEY_USERS'
|
114
|
+
}).children(/^S-1-5-21-[0-9]+-[0-9]+-[0-9]+-[0-9]{3,}\\Software\\Policies\\Microsoft\\Windows\\Installer/).each { |key|
|
115
|
+
describe registry_key(key) do
|
116
|
+
its('AlwaysInstallElevated') { should eq 'value' }
|
117
|
+
end
|
118
|
+
}
|
119
|
+
|
120
|
+
### exist
|
121
|
+
|
122
|
+
The `exist` matcher tests if the registry key is present:
|
123
|
+
|
124
|
+
it { should exist }
|
125
|
+
|
126
|
+
### have_property
|
127
|
+
|
128
|
+
The `have_property` matcher tests if a property exists for a registry key:
|
129
|
+
|
130
|
+
it { should have_property 'value' }
|
131
|
+
|
132
|
+
### have\_property\_value
|
133
|
+
|
134
|
+
The `have_property_value` matcher tests if a property value exists for a registry key:
|
135
|
+
|
136
|
+
it { should have_property_value 'value' }
|
137
|
+
|
138
|
+
### have_value
|
139
|
+
|
140
|
+
The `have_value` matcher tests if a value exists for a registry key:
|
141
|
+
|
142
|
+
it { should have_value 'value' }
|
143
|
+
|
144
|
+
### name
|
145
|
+
|
146
|
+
The `name` matcher tests the value for the specified registry setting:
|
147
|
+
|
148
|
+
its('name') { should eq 'value' }
|
149
|
+
|
150
|
+
|
151
|
+
<p class="warning">
|
152
|
+
Any name with a dot will not work as expected: <code>its('explorer.exe') { should eq 'test' }</code>. This issue is tracked in <a href="https://github.com/chef/inspec/issues/1281">https://github.com/chef/inspec/issues/1281</a>
|
153
|
+
</p>
|
154
|
+
|
155
|
+
# instead of:
|
156
|
+
# its('explorer.exe') { should eq 'test' }
|
157
|
+
# use the following solution:
|
158
|
+
it { should have_property_value('explorer.exe', :string, 'test') }
|
@@ -1,57 +1,57 @@
|
|
1
|
-
---
|
2
|
-
title: About the runit_service Resource
|
3
|
-
platform: linux
|
4
|
-
---
|
5
|
-
|
6
|
-
# runit_service
|
7
|
-
|
8
|
-
Use the `runit_service` InSpec audit resource to test a service using runit.
|
9
|
-
|
10
|
-
<br>
|
11
|
-
|
12
|
-
## Syntax
|
13
|
-
|
14
|
-
A `runit_service` resource block declares the name of a service and then one (or more) matchers to test the state of the service:
|
15
|
-
|
16
|
-
describe runit_service('service_name') do
|
17
|
-
it { should be_installed }
|
18
|
-
it { should be_enabled }
|
19
|
-
it { should be_running }
|
20
|
-
end
|
21
|
-
|
22
|
-
where
|
23
|
-
|
24
|
-
* `('service_name')` must specify a service name
|
25
|
-
* `be_installed`, `be_enabled`, and `be_running` are valid matchers for this resource; all matchers available to the `service` resource may be used
|
26
|
-
|
27
|
-
The path to the service manager's control may be specified for situations where the path isn't available in the current `PATH`. For example:
|
28
|
-
|
29
|
-
describe runit_service('service_name', '/path/to/control') do
|
30
|
-
it { should be_enabled }
|
31
|
-
it { should be_installed }
|
32
|
-
it { should be_running }
|
33
|
-
end
|
34
|
-
|
35
|
-
<br>
|
36
|
-
|
37
|
-
## Matchers
|
38
|
-
|
39
|
-
For a full list of available matchers, please visit our [matchers page](https://www.inspec.io/docs/reference/matchers/).
|
40
|
-
|
41
|
-
### be_enabled
|
42
|
-
|
43
|
-
The `be_enabled` matcher tests if the named service is enabled:
|
44
|
-
|
45
|
-
it { should be_enabled }
|
46
|
-
|
47
|
-
### be_installed
|
48
|
-
|
49
|
-
The `be_installed` matcher tests if the named service is installed:
|
50
|
-
|
51
|
-
it { should be_installed }
|
52
|
-
|
53
|
-
### be_running
|
54
|
-
|
55
|
-
The `be_running` matcher tests if the named service is running:
|
56
|
-
|
57
|
-
it { should be_running }
|
1
|
+
---
|
2
|
+
title: About the runit_service Resource
|
3
|
+
platform: linux
|
4
|
+
---
|
5
|
+
|
6
|
+
# runit_service
|
7
|
+
|
8
|
+
Use the `runit_service` InSpec audit resource to test a service using runit.
|
9
|
+
|
10
|
+
<br>
|
11
|
+
|
12
|
+
## Syntax
|
13
|
+
|
14
|
+
A `runit_service` resource block declares the name of a service and then one (or more) matchers to test the state of the service:
|
15
|
+
|
16
|
+
describe runit_service('service_name') do
|
17
|
+
it { should be_installed }
|
18
|
+
it { should be_enabled }
|
19
|
+
it { should be_running }
|
20
|
+
end
|
21
|
+
|
22
|
+
where
|
23
|
+
|
24
|
+
* `('service_name')` must specify a service name
|
25
|
+
* `be_installed`, `be_enabled`, and `be_running` are valid matchers for this resource; all matchers available to the `service` resource may be used
|
26
|
+
|
27
|
+
The path to the service manager's control may be specified for situations where the path isn't available in the current `PATH`. For example:
|
28
|
+
|
29
|
+
describe runit_service('service_name', '/path/to/control') do
|
30
|
+
it { should be_enabled }
|
31
|
+
it { should be_installed }
|
32
|
+
it { should be_running }
|
33
|
+
end
|
34
|
+
|
35
|
+
<br>
|
36
|
+
|
37
|
+
## Matchers
|
38
|
+
|
39
|
+
For a full list of available matchers, please visit our [matchers page](https://www.inspec.io/docs/reference/matchers/).
|
40
|
+
|
41
|
+
### be_enabled
|
42
|
+
|
43
|
+
The `be_enabled` matcher tests if the named service is enabled:
|
44
|
+
|
45
|
+
it { should be_enabled }
|
46
|
+
|
47
|
+
### be_installed
|
48
|
+
|
49
|
+
The `be_installed` matcher tests if the named service is installed:
|
50
|
+
|
51
|
+
it { should be_installed }
|
52
|
+
|
53
|
+
### be_running
|
54
|
+
|
55
|
+
The `be_running` matcher tests if the named service is running:
|
56
|
+
|
57
|
+
it { should be_running }
|