hiera-eyaml-gpg icon indicating copy to clipboard operation
hiera-eyaml-gpg copied to clipboard

undefined method `value' for nil:NilClass

Open treydock opened this issue 8 years ago • 0 comments

I'm getting this error when I try to decrypt data either via hiera command line tool or via eyaml command line tool. Thus far I don't seem to get errors when puppetserver decrypts the data. The system is RedHat 6.

Full --trace output of eyaml decrypt:

# eyaml decrypt -n gpg --gpg-gnupghome=/etc/puppet/secure/keys/gpg --file=/etc/puppet/hiera/production/hieradata/fqdn/FQDN-OMIT.yaml  --gpg-recipients=puppet@DOMAIN --trace
[hiera-eyaml-core] Dump of eyaml tool options dict:
[hiera-eyaml-core] --------------------------------
[hiera-eyaml-core]           (Symbol) eyaml              =         (NilClass)                   
[hiera-eyaml-core]           (Symbol) file               =           (String) /etc/puppet/hiera/production/hieradata/fqdn/FQDN-OMIT.yaml
[hiera-eyaml-core]           (Symbol) gpg_gnupghome_given =        (TrueClass) true              
[hiera-eyaml-core]           (Symbol) pkcs7_subject      =           (String) /                 
[hiera-eyaml-core]           (Symbol) encrypt_method     =           (String) gpg               
[hiera-eyaml-core]           (Symbol) stdin              =       (FalseClass) false             
[hiera-eyaml-core]           (Symbol) trace_given        =        (TrueClass) true              
[hiera-eyaml-core]           (Symbol) source             =           (Symbol) file              
[hiera-eyaml-core]           (Symbol) pkcs7_private_key  =           (String) ./keys/private_key.pkcs7.pem
[hiera-eyaml-core]           (Symbol) quiet              =       (FalseClass) false             
[hiera-eyaml-core]           (Symbol) version            =       (FalseClass) false             
[hiera-eyaml-core]           (Symbol) input_data         =           (String) ---
                   classes:
                     - role::foreman::web
                   foreman::configure_epel_repo: false
                   foreman::configure_scl_repo: false
                   foreman::db_database: 'foreman'
                   foreman::db_manage: true
                   foreman::db_password: >
                       ENC[GPG,hQEMA.....]
                   foreman::db_type: 'mysql'
                   foreman::db_username: 'foreman'
                   foreman::foreman_url: "https://%{hiera('profile_foreman_host')}"
                   foreman::locations_enabled: false
                   foreman::oauth_active: false
                   foreman::oauth_map_users: false
                   foreman::organizations_enabled: false
                   foreman::puppetrun: true
                   foreman::repo: "%{hiera('foreman_repo')}"
                   #foreman::server_ssl_crl: ""
                   foreman::ssl: true
                   foreman::unattended: true
                   foreman::plugin::puppetdb::address: "https://%{hiera('puppetdb_host')}:8081/v2/commands"
                   foreman::plugin::puppetdb::dashboard_address: "http://%{hiera('puppetdb_host')}:8080/dashboard"
[hiera-eyaml-core]           (Symbol) executor           =            (Class) Hiera::Backend::Eyaml::Subcommands::Decrypt
[hiera-eyaml-core]           (Symbol) pkcs7_public_key   =           (String) ./keys/public_key.pkcs7.pem
[hiera-eyaml-core]           (Symbol) gpg_recipients_file =         (NilClass)                   
[hiera-eyaml-core]           (Symbol) file_given         =        (TrueClass) true              
[hiera-eyaml-core]           (Symbol) gpg_always_trust   =       (FalseClass) false             
[hiera-eyaml-core]           (Symbol) help               =       (FalseClass) false             
[hiera-eyaml-core]           (Symbol) encrypt_method_given =        (TrueClass) true              
[hiera-eyaml-core]           (Symbol) verbose            =       (FalseClass) false             
[hiera-eyaml-core]           (Symbol) gpg_gnupghome      =           (String) /etc/puppet/secure/keys/gpg
[hiera-eyaml-core]           (Symbol) gpg_recipients_given =        (TrueClass) true              
[hiera-eyaml-core]           (Symbol) string             =         (NilClass)                   
[hiera-eyaml-core]           (Symbol) trace              =        (TrueClass) true              
[hiera-eyaml-core]           (Symbol) gpg_recipients     =           (String) puppet@DOMAIN    
[hiera-eyaml-core] --------------------------------
[gpg] GNUPGHOME is /etc/puppet/secure/keys/gpg
[hiera-eyaml-core] undefined method `value' for nil:NilClass
[hiera-eyaml-core] /usr/lib/ruby/gems/1.8/gems/ruby_gpg-0.3.2/lib/ruby_gpg.rb:63:in `run_command'
                   /usr/lib/ruby/1.8/open3.rb:86:in `popen3'
                   /usr/lib/ruby/gems/1.8/gems/ruby_gpg-0.3.2/lib/ruby_gpg.rb:59:in `run_command'
                   /usr/lib/ruby/gems/1.8/gems/ruby_gpg-0.3.2/lib/ruby_gpg.rb:52:in `decrypt_string'
                   /usr/lib/ruby/gems/1.8/gems/hiera-eyaml-gpg-0.6/lib/hiera/backend/eyaml/encryptors/gpg.rb:167:in `decrypt'
                   /usr/lib/ruby/gems/1.8/gems/hiera-eyaml-2.1.0/lib/hiera/backend/eyaml/parser/encrypted_tokens.rb:15:in `encrypted_value'
                   /usr/lib/ruby/gems/1.8/gems/hiera-eyaml-2.1.0/lib/hiera/backend/eyaml/parser/encrypted_tokens.rb:80:in `create_enc_token'
                   /usr/lib/ruby/gems/1.8/gems/hiera-eyaml-2.1.0/lib/hiera/backend/eyaml/parser/encrypted_tokens.rb:110:in `create_token'
                   /usr/lib/ruby/gems/1.8/gems/hiera-eyaml-2.1.0/lib/hiera/backend/eyaml/parser/parser.rb:71:in `parse_scanner'
                   /usr/lib/ruby/gems/1.8/gems/hiera-eyaml-2.1.0/lib/hiera/backend/eyaml/parser/parser.rb:74:in `parse_scanner'
                   /usr/lib/ruby/gems/1.8/gems/hiera-eyaml-2.1.0/lib/hiera/backend/eyaml/parser/parser.rb:36:in `parse'
                   /usr/lib/ruby/gems/1.8/gems/hiera-eyaml-2.1.0/lib/hiera/backend/eyaml/subcommands/decrypt.rb:58:in `execute'
                   /usr/lib/ruby/gems/1.8/gems/hiera-eyaml-2.1.0/lib/hiera/backend/eyaml/CLI.rb:46:in `execute'
                   /usr/lib/ruby/gems/1.8/gems/hiera-eyaml-2.1.0/bin/eyaml:21
                   /usr/bin/eyaml:19:in `load'
                   /usr/bin/eyaml:19

Hiera trace:

# hiera --config /etc/puppet/hiera.yaml foreman::db_password ::fqdn=FQDN-OMIT ::environment=production
/usr/lib/ruby/gems/1.8/gems/ruby_gpg-0.3.2/lib/ruby_gpg.rb:63:in `run_command': undefined method `value' for nil:NilClass (NoMethodError)
    from /usr/lib/ruby/1.8/open3.rb:86:in `popen3'
    from /usr/lib/ruby/gems/1.8/gems/ruby_gpg-0.3.2/lib/ruby_gpg.rb:59:in `run_command'
    from /usr/lib/ruby/gems/1.8/gems/ruby_gpg-0.3.2/lib/ruby_gpg.rb:52:in `decrypt_string'
    from /usr/lib/ruby/gems/1.8/gems/hiera-eyaml-gpg-0.6/lib/hiera/backend/eyaml/encryptors/gpg.rb:167:in `decrypt'
    from /usr/lib/ruby/gems/1.8/gems/hiera-eyaml-2.1.0/lib/hiera/backend/eyaml/parser/encrypted_tokens.rb:15:in `encrypted_value'
    from /usr/lib/ruby/gems/1.8/gems/hiera-eyaml-2.1.0/lib/hiera/backend/eyaml/parser/encrypted_tokens.rb:80:in `create_enc_token'
    from /usr/lib/ruby/gems/1.8/gems/hiera-eyaml-2.1.0/lib/hiera/backend/eyaml/parser/encrypted_tokens.rb:100:in `create_token'
    from /usr/lib/ruby/gems/1.8/gems/hiera-eyaml-2.1.0/lib/hiera/backend/eyaml/parser/encrypted_tokens.rb:90:in `create_token'
    from /usr/lib/ruby/gems/1.8/gems/hiera-eyaml-2.1.0/lib/hiera/backend/eyaml/parser/parser.rb:71:in `parse_scanner'
    from /usr/lib/ruby/gems/1.8/gems/hiera-eyaml-2.1.0/lib/hiera/backend/eyaml/parser/parser.rb:36:in `parse'
    from /usr/lib/ruby/gems/1.8/gems/hiera-eyaml-2.1.0/lib/hiera/backend/eyaml_backend.rb:83:in `decrypt'
    from /usr/lib/ruby/gems/1.8/gems/hiera-eyaml-2.1.0/lib/hiera/backend/eyaml_backend.rb:131:in `parse_string'
    from /usr/lib/ruby/gems/1.8/gems/hiera-eyaml-2.1.0/lib/hiera/backend/eyaml_backend.rb:101:in `parse_answer'
    from /usr/lib/ruby/gems/1.8/gems/hiera-eyaml-2.1.0/lib/hiera/backend/eyaml_backend.rb:53:in `lookup'
    from /usr/lib/ruby/site_ruby/1.8/hiera/backend.rb:76:in `datasources'
    from /usr/lib/ruby/site_ruby/1.8/hiera/backend.rb:74:in `map'
    from /usr/lib/ruby/site_ruby/1.8/hiera/backend.rb:74:in `datasources'
    from /usr/lib/ruby/gems/1.8/gems/hiera-eyaml-2.1.0/lib/hiera/backend/eyaml_backend.rb:29:in `lookup'
    from /usr/lib/ruby/site_ruby/1.8/hiera/backend.rb:206:in `lookup'
    from /usr/lib/ruby/site_ruby/1.8/hiera/backend.rb:203:in `each'
    from /usr/lib/ruby/site_ruby/1.8/hiera/backend.rb:203:in `lookup'
    from /usr/lib/ruby/site_ruby/1.8/hiera.rb:60:in `lookup'
    from /usr/bin/hiera:225

treydock avatar Apr 25 '16 17:04 treydock