Invalid only_if/not_if command, expected a string: true (TrueClass)

Ошибка при выполнении рецепта Chef вида:

...
[2017-03-23T11:43:25+00:00] INFO: Processing bash[get certs from s3] action run (linuxcmd::get_certs line 30)
================================================================================
Error executing action `run` on resource 'bash[get certs from s3]'
================================================================================
ArgumentError
-------------
Invalid only_if/not_if command, expected a string: true (TrueClass)
Resource Declaration:
---------------------
# In /var/chef/runs/74f5cc40-57fa-415b-89d6-9f1577d4fe3d/local-mode-cache/cache/cookbooks/linuxcmd/recipes/get_certs.rb
30: bash 'get certs from s3' do
31:     not_if mys3_files.empty?
32:     ignore_failure = true
33:     code <<-EOF
34:         S3_FILES=#{mys3_files}      ## S3 files directory
35:         CERT_DIR=#{mycert_dir}      ## local certs directory
36:
37:         CERT_KEY=#{mycert_key}      ## private key
38:         CERT_BUNDLE=#{mycert}       ## bundle for nginx
39:
40:         aws s3 cp $S3_FILES/certs/$CERT_KEY  $CERT_DIR/$CERT_KEY        ## download private key
41:         aws s3 cp $S3_FILES/certs/$CERT_BUNDLE   $CERT_DIR/$CERT_BUNDLE ## download bundle for nginx
42:     EOF
43: end
...

... имеет место, когда not_if или only_if (в блоках bash и других их поддерживающих) используется без {фигурных скобок}. Т.е. изменение кода к виду:

Код:

bash 'get certs from s3' do
    not_if { mys3_files.empty? }
    ignore_failure = true
    code <<-EOF
        S3_FILES=#{mys3_files}      ## S3 files directory
        CERT_DIR=#{mycert_dir}      ## local certs directory

        CERT_KEY=#{mycert_key}      ## private key
        CERT_BUNDLE=#{mycert}       ## bundle for nginx

        aws s3 cp $S3_FILES/certs/$CERT_KEY     $CERT_DIR/$CERT_KEY        ## download private key
        aws s3 cp $S3_FILES/certs/$CERT_BUNDLE    $CERT_DIR/$CERT_BUNDLE    ## download bundle for nginx
    EOF
end

решает пробему.

Tags: 

Если вам помогла или просто понравилась статья - плюсаните/поделитесь, пожалуйста.

Добавить комментарий