inspec 2.0.32 → 2.0.45
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.
- checksums.yaml +4 -4
- data/.rubocop.yml +101 -101
- data/CHANGELOG.md +2991 -2970
- data/Gemfile +55 -55
- data/LICENSE +14 -14
- data/MAINTAINERS.md +33 -33
- data/MAINTAINERS.toml +52 -52
- data/README.md +446 -437
- data/Rakefile +322 -322
- 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 +169 -168
- 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_config_recorder.md.erb +71 -71
- 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 +144 -144
- data/docs/resources/aws_iam_role.md.erb +63 -63
- 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 +151 -151
- data/docs/resources/aws_security_groups.md.erb +91 -91
- data/docs/resources/aws_sns_topic.md.erb +63 -63
- 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 -170
- data/docs/resources/azure_resource_group.md.erb +284 -284
- data/docs/resources/azure_virtual_machine.md.erb +347 -347
- data/docs/resources/azure_virtual_machine_data_disk.md.erb +224 -224
- 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 +89 -89
- data/docs/resources/csv.md.erb +54 -54
- data/docs/resources/dh_params.md.erb +205 -205
- data/docs/resources/directory.md.erb +30 -30
- data/docs/resources/docker.md.erb +219 -219
- 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 +526 -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 +86 -86
- data/docs/resources/http.md.erb +196 -196
- 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 +63 -63
- data/docs/resources/kernel_module.md.erb +120 -120
- 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 +146 -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 +215 -215
- 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 +355 -350
- data/lib/inspec/cached_fetcher.rb +66 -66
- data/lib/inspec/cli.rb +292 -292
- 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 +135 -135
- 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 +54 -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 +345 -345
- data/lib/inspec/runner_mock.rb +41 -41
- data/lib/inspec/runner_rspec.rb +175 -175
- 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 -220
- 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 +41 -41
- 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 +159 -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_config_recorder.rb +98 -98
- 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 +149 -144
- data/lib/resources/aws/aws_iam_group.rb +56 -56
- data/lib/resources/aws/aws_iam_groups.rb +52 -45
- data/lib/resources/aws/aws_iam_password_policy.rb +116 -116
- data/lib/resources/aws/aws_iam_policies.rb +53 -46
- data/lib/resources/aws/aws_iam_policy.rb +125 -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 +108 -96
- data/lib/resources/aws/aws_kms_keys.rb +53 -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 +73 -69
- data/lib/resources/cpan.rb +58 -58
- data/lib/resources/cran.rb +64 -64
- data/lib/resources/crontab.rb +169 -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 +101 -102
- data/lib/resources/etc_group.rb +152 -156
- data/lib/resources/etc_hosts.rb +82 -81
- data/lib/resources/etc_hosts_allow_deny.rb +122 -123
- data/lib/resources/file.rb +298 -298
- data/lib/resources/filesystem.rb +31 -31
- data/lib/resources/firewalld.rb +143 -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 +306 -300
- data/lib/resources/http.rb +251 -250
- data/lib/resources/iis_app.rb +101 -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 +80 -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 +370 -370
- 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 +99 -100
- data/lib/resources/postgres_ident_conf.rb +76 -78
- data/lib/resources/postgres_session.rb +71 -71
- data/lib/resources/powershell.rb +53 -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 +146 -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 +68 -69
- data/lib/resources/virtualization.rb +247 -247
- data/lib/resources/windows_feature.rb +84 -84
- data/lib/resources/windows_hotfix.rb +35 -35
- data/lib/resources/windows_task.rb +102 -105
- data/lib/resources/wmi.rb +110 -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 +2 -2
|
@@ -1,104 +1,104 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: About the docker_container Resource
|
|
3
|
-
platform: linux
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# docker_container
|
|
7
|
-
|
|
8
|
-
Use the `docker_container` InSpec audit resource to test a docker container.
|
|
9
|
-
|
|
10
|
-
<br>
|
|
11
|
-
|
|
12
|
-
## Syntax
|
|
13
|
-
|
|
14
|
-
A `docker_container` resource block declares the configuration data to be tested:
|
|
15
|
-
|
|
16
|
-
describe docker_container('container') do
|
|
17
|
-
it { should exist }
|
|
18
|
-
it { should be_running }
|
|
19
|
-
its('id') { should_not eq '' }
|
|
20
|
-
its('image') { should eq 'busybox:latest' }
|
|
21
|
-
its('repo') { should eq 'busybox' }
|
|
22
|
-
its('tag') { should eq 'latest' }
|
|
23
|
-
its('ports') { should eq [] }
|
|
24
|
-
its('command') { should eq 'nc -ll -p 1234 -e /bin/cat' }
|
|
25
|
-
end
|
|
26
|
-
|
|
27
|
-
<br>
|
|
28
|
-
|
|
29
|
-
## Resource Parameter Examples
|
|
30
|
-
|
|
31
|
-
### name
|
|
32
|
-
|
|
33
|
-
The container name can also be passed with the `name` resource parameter:
|
|
34
|
-
|
|
35
|
-
describe docker_container(name: 'an-echo-server') do
|
|
36
|
-
it { should exist }
|
|
37
|
-
it { should be_running }
|
|
38
|
-
end
|
|
39
|
-
|
|
40
|
-
### id
|
|
41
|
-
|
|
42
|
-
Alternatively, you can pass in the container id:
|
|
43
|
-
|
|
44
|
-
describe docker_container(id: '71b5df59442b') do
|
|
45
|
-
it { should exist }
|
|
46
|
-
it { should be_running }
|
|
47
|
-
end
|
|
48
|
-
|
|
49
|
-
<br>
|
|
50
|
-
|
|
51
|
-
## Property Examples
|
|
52
|
-
|
|
53
|
-
The following examples show how to use this InSpec resource.
|
|
54
|
-
|
|
55
|
-
### id
|
|
56
|
-
|
|
57
|
-
The `id` property tests the container id:
|
|
58
|
-
|
|
59
|
-
its('id') { should eq 'sha:71b5df59...442b' }
|
|
60
|
-
|
|
61
|
-
### repo
|
|
62
|
-
|
|
63
|
-
The `repo` property tests the value of the image repository:
|
|
64
|
-
|
|
65
|
-
its('repo') { should eq 'busybox' }
|
|
66
|
-
|
|
67
|
-
### tag
|
|
68
|
-
|
|
69
|
-
The `tag` property tests the value of the image tag:
|
|
70
|
-
|
|
71
|
-
its('tag') { should eq 'latest' }
|
|
72
|
-
|
|
73
|
-
### ports
|
|
74
|
-
|
|
75
|
-
The `ports` property tests the value the docker ports:
|
|
76
|
-
|
|
77
|
-
its('ports') { should eq '0.0.0.0:1234->1234/tcp' }
|
|
78
|
-
|
|
79
|
-
### command
|
|
80
|
-
|
|
81
|
-
The `command` property tests the value of the container run command:
|
|
82
|
-
|
|
83
|
-
its('command') { should eq 'nc -ll -p 1234 -e /bin/cat' }
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
### Verify a running container:
|
|
87
|
-
|
|
88
|
-
describe docker_container('an-echo-server') do
|
|
89
|
-
it { should exist }
|
|
90
|
-
it { should be_running }
|
|
91
|
-
its('id') { should_not eq '' }
|
|
92
|
-
its('image') { should eq 'busybox:latest' }
|
|
93
|
-
its('repo') { should eq 'busybox' }
|
|
94
|
-
its('tag') { should eq 'latest' }
|
|
95
|
-
its('ports') { should eq [] }
|
|
96
|
-
its('command') { should eq 'nc -ll -p 1234 -e /bin/cat' }
|
|
97
|
-
end
|
|
98
|
-
|
|
99
|
-
<br>
|
|
100
|
-
|
|
101
|
-
## Matchers
|
|
102
|
-
|
|
103
|
-
For a full list of available matchers, please visit our [matchers page](https://www.inspec.io/docs/reference/matchers/).
|
|
104
|
-
|
|
1
|
+
---
|
|
2
|
+
title: About the docker_container Resource
|
|
3
|
+
platform: linux
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# docker_container
|
|
7
|
+
|
|
8
|
+
Use the `docker_container` InSpec audit resource to test a docker container.
|
|
9
|
+
|
|
10
|
+
<br>
|
|
11
|
+
|
|
12
|
+
## Syntax
|
|
13
|
+
|
|
14
|
+
A `docker_container` resource block declares the configuration data to be tested:
|
|
15
|
+
|
|
16
|
+
describe docker_container('container') do
|
|
17
|
+
it { should exist }
|
|
18
|
+
it { should be_running }
|
|
19
|
+
its('id') { should_not eq '' }
|
|
20
|
+
its('image') { should eq 'busybox:latest' }
|
|
21
|
+
its('repo') { should eq 'busybox' }
|
|
22
|
+
its('tag') { should eq 'latest' }
|
|
23
|
+
its('ports') { should eq [] }
|
|
24
|
+
its('command') { should eq 'nc -ll -p 1234 -e /bin/cat' }
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
<br>
|
|
28
|
+
|
|
29
|
+
## Resource Parameter Examples
|
|
30
|
+
|
|
31
|
+
### name
|
|
32
|
+
|
|
33
|
+
The container name can also be passed with the `name` resource parameter:
|
|
34
|
+
|
|
35
|
+
describe docker_container(name: 'an-echo-server') do
|
|
36
|
+
it { should exist }
|
|
37
|
+
it { should be_running }
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
### id
|
|
41
|
+
|
|
42
|
+
Alternatively, you can pass in the container id:
|
|
43
|
+
|
|
44
|
+
describe docker_container(id: '71b5df59442b') do
|
|
45
|
+
it { should exist }
|
|
46
|
+
it { should be_running }
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
<br>
|
|
50
|
+
|
|
51
|
+
## Property Examples
|
|
52
|
+
|
|
53
|
+
The following examples show how to use this InSpec resource.
|
|
54
|
+
|
|
55
|
+
### id
|
|
56
|
+
|
|
57
|
+
The `id` property tests the container id:
|
|
58
|
+
|
|
59
|
+
its('id') { should eq 'sha:71b5df59...442b' }
|
|
60
|
+
|
|
61
|
+
### repo
|
|
62
|
+
|
|
63
|
+
The `repo` property tests the value of the image repository:
|
|
64
|
+
|
|
65
|
+
its('repo') { should eq 'busybox' }
|
|
66
|
+
|
|
67
|
+
### tag
|
|
68
|
+
|
|
69
|
+
The `tag` property tests the value of the image tag:
|
|
70
|
+
|
|
71
|
+
its('tag') { should eq 'latest' }
|
|
72
|
+
|
|
73
|
+
### ports
|
|
74
|
+
|
|
75
|
+
The `ports` property tests the value the docker ports:
|
|
76
|
+
|
|
77
|
+
its('ports') { should eq '0.0.0.0:1234->1234/tcp' }
|
|
78
|
+
|
|
79
|
+
### command
|
|
80
|
+
|
|
81
|
+
The `command` property tests the value of the container run command:
|
|
82
|
+
|
|
83
|
+
its('command') { should eq 'nc -ll -p 1234 -e /bin/cat' }
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
### Verify a running container:
|
|
87
|
+
|
|
88
|
+
describe docker_container('an-echo-server') do
|
|
89
|
+
it { should exist }
|
|
90
|
+
it { should be_running }
|
|
91
|
+
its('id') { should_not eq '' }
|
|
92
|
+
its('image') { should eq 'busybox:latest' }
|
|
93
|
+
its('repo') { should eq 'busybox' }
|
|
94
|
+
its('tag') { should eq 'latest' }
|
|
95
|
+
its('ports') { should eq [] }
|
|
96
|
+
its('command') { should eq 'nc -ll -p 1234 -e /bin/cat' }
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
<br>
|
|
100
|
+
|
|
101
|
+
## Matchers
|
|
102
|
+
|
|
103
|
+
For a full list of available matchers, please visit our [matchers page](https://www.inspec.io/docs/reference/matchers/).
|
|
104
|
+
|
|
@@ -1,94 +1,94 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: About the docker_image Resource
|
|
3
|
-
platform: linux
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# docker_image
|
|
7
|
-
|
|
8
|
-
Use the `docker_image` InSpec audit resource to verify a docker image.
|
|
9
|
-
|
|
10
|
-
<br>
|
|
11
|
-
|
|
12
|
-
## Syntax
|
|
13
|
-
|
|
14
|
-
A `docker_image` resource block declares the image:
|
|
15
|
-
|
|
16
|
-
describe docker_image('alpine:latest') do
|
|
17
|
-
it { should exist }
|
|
18
|
-
its('id') { should eq 'sha256:4a415e...a526' }
|
|
19
|
-
its('repo') { should eq 'alpine' }
|
|
20
|
-
its('tag') { should eq 'latest' }
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
<br>
|
|
24
|
-
|
|
25
|
-
## Resource Parameter Examples
|
|
26
|
-
|
|
27
|
-
The resource allows you to pass in an image id:
|
|
28
|
-
|
|
29
|
-
describe docker_image(id: alpine_id) do
|
|
30
|
-
...
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
If the tag is missing for an image, `latest` is assumed as default:
|
|
34
|
-
|
|
35
|
-
describe docker_image('alpine') do
|
|
36
|
-
...
|
|
37
|
-
end
|
|
38
|
-
|
|
39
|
-
You can also pass in repository and tag as separate values
|
|
40
|
-
|
|
41
|
-
describe docker_image(repo: 'alpine', tag: 'latest') do
|
|
42
|
-
...
|
|
43
|
-
end
|
|
44
|
-
|
|
45
|
-
<br>
|
|
46
|
-
|
|
47
|
-
## Property Examples
|
|
48
|
-
|
|
49
|
-
### id
|
|
50
|
-
|
|
51
|
-
The `id` property returns the full image id:
|
|
52
|
-
|
|
53
|
-
its('id') { should eq 'sha256:4a415e3663882fbc554ee830889c68a33b3585503892cc718a4698e91ef2a526' }
|
|
54
|
-
|
|
55
|
-
### image
|
|
56
|
-
|
|
57
|
-
The `image` property tests the value of the image. It is a combination of `repository/tag`:
|
|
58
|
-
|
|
59
|
-
its('image') { should eq 'alpine:latest' }
|
|
60
|
-
|
|
61
|
-
### repo
|
|
62
|
-
|
|
63
|
-
The `repo` property tests the value of the repository name:
|
|
64
|
-
|
|
65
|
-
its('repo') { should eq 'alpine' }
|
|
66
|
-
|
|
67
|
-
### tag
|
|
68
|
-
|
|
69
|
-
The `tag` property tests the value of image tag:
|
|
70
|
-
|
|
71
|
-
its('tag') { should eq 'latest' }
|
|
72
|
-
|
|
73
|
-
### Test a docker image
|
|
74
|
-
|
|
75
|
-
describe docker_image('alpine:latest') do
|
|
76
|
-
it { should exist }
|
|
77
|
-
its('id') { should eq 'sha256:4a415e...a526' }
|
|
78
|
-
its('image') { should eq 'alpine:latest' }
|
|
79
|
-
its('repo') { should eq 'alpine' }
|
|
80
|
-
its('tag') { should eq 'latest' }
|
|
81
|
-
end
|
|
82
|
-
|
|
83
|
-
<br>
|
|
84
|
-
|
|
85
|
-
## Matchers
|
|
86
|
-
|
|
87
|
-
For a full list of available matchers, please visit our [matchers page](https://www.inspec.io/docs/reference/matchers/).
|
|
88
|
-
|
|
89
|
-
### exist
|
|
90
|
-
|
|
91
|
-
The `exist` matcher tests if the image is available on the node:
|
|
92
|
-
|
|
93
|
-
it { should exist }
|
|
94
|
-
|
|
1
|
+
---
|
|
2
|
+
title: About the docker_image Resource
|
|
3
|
+
platform: linux
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# docker_image
|
|
7
|
+
|
|
8
|
+
Use the `docker_image` InSpec audit resource to verify a docker image.
|
|
9
|
+
|
|
10
|
+
<br>
|
|
11
|
+
|
|
12
|
+
## Syntax
|
|
13
|
+
|
|
14
|
+
A `docker_image` resource block declares the image:
|
|
15
|
+
|
|
16
|
+
describe docker_image('alpine:latest') do
|
|
17
|
+
it { should exist }
|
|
18
|
+
its('id') { should eq 'sha256:4a415e...a526' }
|
|
19
|
+
its('repo') { should eq 'alpine' }
|
|
20
|
+
its('tag') { should eq 'latest' }
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
<br>
|
|
24
|
+
|
|
25
|
+
## Resource Parameter Examples
|
|
26
|
+
|
|
27
|
+
The resource allows you to pass in an image id:
|
|
28
|
+
|
|
29
|
+
describe docker_image(id: alpine_id) do
|
|
30
|
+
...
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
If the tag is missing for an image, `latest` is assumed as default:
|
|
34
|
+
|
|
35
|
+
describe docker_image('alpine') do
|
|
36
|
+
...
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
You can also pass in repository and tag as separate values
|
|
40
|
+
|
|
41
|
+
describe docker_image(repo: 'alpine', tag: 'latest') do
|
|
42
|
+
...
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
<br>
|
|
46
|
+
|
|
47
|
+
## Property Examples
|
|
48
|
+
|
|
49
|
+
### id
|
|
50
|
+
|
|
51
|
+
The `id` property returns the full image id:
|
|
52
|
+
|
|
53
|
+
its('id') { should eq 'sha256:4a415e3663882fbc554ee830889c68a33b3585503892cc718a4698e91ef2a526' }
|
|
54
|
+
|
|
55
|
+
### image
|
|
56
|
+
|
|
57
|
+
The `image` property tests the value of the image. It is a combination of `repository/tag`:
|
|
58
|
+
|
|
59
|
+
its('image') { should eq 'alpine:latest' }
|
|
60
|
+
|
|
61
|
+
### repo
|
|
62
|
+
|
|
63
|
+
The `repo` property tests the value of the repository name:
|
|
64
|
+
|
|
65
|
+
its('repo') { should eq 'alpine' }
|
|
66
|
+
|
|
67
|
+
### tag
|
|
68
|
+
|
|
69
|
+
The `tag` property tests the value of image tag:
|
|
70
|
+
|
|
71
|
+
its('tag') { should eq 'latest' }
|
|
72
|
+
|
|
73
|
+
### Test a docker image
|
|
74
|
+
|
|
75
|
+
describe docker_image('alpine:latest') do
|
|
76
|
+
it { should exist }
|
|
77
|
+
its('id') { should eq 'sha256:4a415e...a526' }
|
|
78
|
+
its('image') { should eq 'alpine:latest' }
|
|
79
|
+
its('repo') { should eq 'alpine' }
|
|
80
|
+
its('tag') { should eq 'latest' }
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
<br>
|
|
84
|
+
|
|
85
|
+
## Matchers
|
|
86
|
+
|
|
87
|
+
For a full list of available matchers, please visit our [matchers page](https://www.inspec.io/docs/reference/matchers/).
|
|
88
|
+
|
|
89
|
+
### exist
|
|
90
|
+
|
|
91
|
+
The `exist` matcher tests if the image is available on the node:
|
|
92
|
+
|
|
93
|
+
it { should exist }
|
|
94
|
+
|
|
@@ -1,114 +1,114 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: About the docker_service Resource
|
|
3
|
-
platform: linux
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# docker_service
|
|
7
|
-
|
|
8
|
-
Use the `docker_service` InSpec audit resource to verify a docker swarm service.
|
|
9
|
-
|
|
10
|
-
<br>
|
|
11
|
-
|
|
12
|
-
## Syntax
|
|
13
|
-
|
|
14
|
-
A `docker_service` resource block declares the service by name:
|
|
15
|
-
|
|
16
|
-
describe docker_service('foo') do
|
|
17
|
-
it { should exist }
|
|
18
|
-
its('id') { should eq '2ghswegspre1' }
|
|
19
|
-
its('repo') { should eq 'alpine' }
|
|
20
|
-
its('tag') { should eq 'latest' }
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
<br>
|
|
24
|
-
|
|
25
|
-
## Resource Parameter Examples
|
|
26
|
-
|
|
27
|
-
The resource allows you to pass in a service id:
|
|
28
|
-
|
|
29
|
-
describe docker_service(id: '2ghswegspre1') do
|
|
30
|
-
...
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
You can also pass in the fully-qualified image:
|
|
34
|
-
|
|
35
|
-
describe docker_service(image: 'localhost:5000/alpine:latest') do
|
|
36
|
-
...
|
|
37
|
-
end
|
|
38
|
-
|
|
39
|
-
<br>
|
|
40
|
-
|
|
41
|
-
## Property Examples
|
|
42
|
-
|
|
43
|
-
The following examples show how to use InSpec `docker_service` resource.
|
|
44
|
-
|
|
45
|
-
### id
|
|
46
|
-
|
|
47
|
-
The `id` property returns the service id:
|
|
48
|
-
|
|
49
|
-
its('id') { should eq '2ghswegspre1' }
|
|
50
|
-
|
|
51
|
-
### image
|
|
52
|
-
|
|
53
|
-
The `image` property tests the value of the image. It is a combination of `repository:tag`:
|
|
54
|
-
|
|
55
|
-
its('image') { should eq 'alpine:latest' }
|
|
56
|
-
|
|
57
|
-
### mode
|
|
58
|
-
|
|
59
|
-
The `mode` property tests the value of the service mode:
|
|
60
|
-
|
|
61
|
-
its('mode') { should eq 'replicated' }
|
|
62
|
-
|
|
63
|
-
### name
|
|
64
|
-
|
|
65
|
-
The `name` property tests the value of the service name:
|
|
66
|
-
|
|
67
|
-
its('name') { should eq 'foo' }
|
|
68
|
-
|
|
69
|
-
### ports
|
|
70
|
-
|
|
71
|
-
The `ports` property tests the value of the service's published ports:
|
|
72
|
-
|
|
73
|
-
its('ports') { should include '*:8000->8000/tcp' }
|
|
74
|
-
|
|
75
|
-
### repo
|
|
76
|
-
|
|
77
|
-
The `repo` property tests the value of the repository name:
|
|
78
|
-
|
|
79
|
-
its('repo') { should eq 'alpine' }
|
|
80
|
-
|
|
81
|
-
### replicas
|
|
82
|
-
|
|
83
|
-
The `replicas` property tests the value of the service's replica count:
|
|
84
|
-
|
|
85
|
-
its('replicas') { should eq '3/3' }
|
|
86
|
-
|
|
87
|
-
### tag
|
|
88
|
-
|
|
89
|
-
The `tag` property tests the value of image tag:
|
|
90
|
-
|
|
91
|
-
its('tag') { should eq 'latest' }
|
|
92
|
-
|
|
93
|
-
### Test a docker service
|
|
94
|
-
|
|
95
|
-
describe docker_service('foo') do
|
|
96
|
-
it { should exist }
|
|
97
|
-
its('id') { should eq '2ghswegspre1' }
|
|
98
|
-
its('repo') { should eq 'alpine' }
|
|
99
|
-
its('tag') { should eq 'latest' }
|
|
100
|
-
end
|
|
101
|
-
|
|
102
|
-
<br>
|
|
103
|
-
|
|
104
|
-
## Matchers
|
|
105
|
-
|
|
106
|
-
For a full list of available matchers, please visit our [matchers page](https://www.inspec.io/docs/reference/matchers/).
|
|
107
|
-
|
|
108
|
-
### exist
|
|
109
|
-
|
|
110
|
-
The `exist` matcher tests if the image is available on the node:
|
|
111
|
-
|
|
112
|
-
it { should exist }
|
|
113
|
-
|
|
114
|
-
|
|
1
|
+
---
|
|
2
|
+
title: About the docker_service Resource
|
|
3
|
+
platform: linux
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# docker_service
|
|
7
|
+
|
|
8
|
+
Use the `docker_service` InSpec audit resource to verify a docker swarm service.
|
|
9
|
+
|
|
10
|
+
<br>
|
|
11
|
+
|
|
12
|
+
## Syntax
|
|
13
|
+
|
|
14
|
+
A `docker_service` resource block declares the service by name:
|
|
15
|
+
|
|
16
|
+
describe docker_service('foo') do
|
|
17
|
+
it { should exist }
|
|
18
|
+
its('id') { should eq '2ghswegspre1' }
|
|
19
|
+
its('repo') { should eq 'alpine' }
|
|
20
|
+
its('tag') { should eq 'latest' }
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
<br>
|
|
24
|
+
|
|
25
|
+
## Resource Parameter Examples
|
|
26
|
+
|
|
27
|
+
The resource allows you to pass in a service id:
|
|
28
|
+
|
|
29
|
+
describe docker_service(id: '2ghswegspre1') do
|
|
30
|
+
...
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
You can also pass in the fully-qualified image:
|
|
34
|
+
|
|
35
|
+
describe docker_service(image: 'localhost:5000/alpine:latest') do
|
|
36
|
+
...
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
<br>
|
|
40
|
+
|
|
41
|
+
## Property Examples
|
|
42
|
+
|
|
43
|
+
The following examples show how to use InSpec `docker_service` resource.
|
|
44
|
+
|
|
45
|
+
### id
|
|
46
|
+
|
|
47
|
+
The `id` property returns the service id:
|
|
48
|
+
|
|
49
|
+
its('id') { should eq '2ghswegspre1' }
|
|
50
|
+
|
|
51
|
+
### image
|
|
52
|
+
|
|
53
|
+
The `image` property tests the value of the image. It is a combination of `repository:tag`:
|
|
54
|
+
|
|
55
|
+
its('image') { should eq 'alpine:latest' }
|
|
56
|
+
|
|
57
|
+
### mode
|
|
58
|
+
|
|
59
|
+
The `mode` property tests the value of the service mode:
|
|
60
|
+
|
|
61
|
+
its('mode') { should eq 'replicated' }
|
|
62
|
+
|
|
63
|
+
### name
|
|
64
|
+
|
|
65
|
+
The `name` property tests the value of the service name:
|
|
66
|
+
|
|
67
|
+
its('name') { should eq 'foo' }
|
|
68
|
+
|
|
69
|
+
### ports
|
|
70
|
+
|
|
71
|
+
The `ports` property tests the value of the service's published ports:
|
|
72
|
+
|
|
73
|
+
its('ports') { should include '*:8000->8000/tcp' }
|
|
74
|
+
|
|
75
|
+
### repo
|
|
76
|
+
|
|
77
|
+
The `repo` property tests the value of the repository name:
|
|
78
|
+
|
|
79
|
+
its('repo') { should eq 'alpine' }
|
|
80
|
+
|
|
81
|
+
### replicas
|
|
82
|
+
|
|
83
|
+
The `replicas` property tests the value of the service's replica count:
|
|
84
|
+
|
|
85
|
+
its('replicas') { should eq '3/3' }
|
|
86
|
+
|
|
87
|
+
### tag
|
|
88
|
+
|
|
89
|
+
The `tag` property tests the value of image tag:
|
|
90
|
+
|
|
91
|
+
its('tag') { should eq 'latest' }
|
|
92
|
+
|
|
93
|
+
### Test a docker service
|
|
94
|
+
|
|
95
|
+
describe docker_service('foo') do
|
|
96
|
+
it { should exist }
|
|
97
|
+
its('id') { should eq '2ghswegspre1' }
|
|
98
|
+
its('repo') { should eq 'alpine' }
|
|
99
|
+
its('tag') { should eq 'latest' }
|
|
100
|
+
end
|
|
101
|
+
|
|
102
|
+
<br>
|
|
103
|
+
|
|
104
|
+
## Matchers
|
|
105
|
+
|
|
106
|
+
For a full list of available matchers, please visit our [matchers page](https://www.inspec.io/docs/reference/matchers/).
|
|
107
|
+
|
|
108
|
+
### exist
|
|
109
|
+
|
|
110
|
+
The `exist` matcher tests if the image is available on the node:
|
|
111
|
+
|
|
112
|
+
it { should exist }
|
|
113
|
+
|
|
114
|
+
|