Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

No such file or directory @ dir_s_mkdir #1202

Closed
jeff1evesque opened this issue Apr 5, 2018 · 1 comment
Closed

No such file or directory @ dir_s_mkdir #1202

jeff1evesque opened this issue Apr 5, 2018 · 1 comment

Comments

@jeff1evesque
Copy link

jeff1evesque commented Apr 5, 2018

Affected Puppet, Ruby, OS and module versions/distributions

  • Puppet: 4.10.10
  • Ruby: ruby 1.9.3p484 (2013-11-22 revision 43786) [x86_64-linux]
  • Distribution: ubuntu: 14.04
  • Module version: 0.11.0

How to reproduce (e.g Puppet code you use)

The puppet code I use:

## config.pp
    ## reverse proxy members
    nginx::resource::upstream { $proxy:
        members         => $members,
    }

    ## https only server: since 'listen_port' = 'ssl_port'
    nginx::resource::server { $vhost:
        proxy           => "http://${proxy}:{host_port}",
        ssl             => true,
        ssl_cert        => "${cert_path}/${vhost}_${type}.crt",
        ssl_key         => "${pkey_path}/${vhost}_${type}.key",
        listen_port     => $listen_port,
        ssl_port        => $listen_port,
        access_log      => $access_log,
        error_log       => $error_log,
}

## install.pp
    ## install reverse proxy
    class { 'nginx':
        package_ensure => $package_version,
        service_ensure => $reverse_proxy_start,
    }
  1. build the base docker container
  2. build the nginx docker container
docker build -f base.dockerfile -t ml-base .
docker build --build-arg TYPE=api --build-arg RUN=false --build-arg VHOST=machine-learning-api.com --build-arg HOST_PORT=9090 --build-arg LISTEN_PORT=6000 --build-arg WEBSERVER_PORT=6001 -f nginx.dockerfile -t ml-nginx-api .

The above files are predicated on commits, currently not merged to master branch:

What are you seeing

My nginx container runs my custom reverse_proxy puppet module. The corresponding traceback:

[...UNRELATED-TRACEBACK-OMITTED...]
Error: Could not set 'file' on ensure: No such file or directory @ dir_s_mkdir - /etc/nginx/conf.d/http:/localhost-upstream.conf20180404-5-1pr1vr6.lock
Error: Could not set 'file' on ensure: No such file or directory @ dir_s_mkdir - /etc/nginx/conf.d/http:/localhost-upstream.conf20180404-5-1pr1vr6.lock
Wrapped exception:
No such file or directory @ dir_s_mkdir - /etc/nginx/conf.d/http:/localhost-upstream.conf20180404-5-1pr1vr6.lock
Error: /Stage[main]/Reverse_proxy::Config/Nginx::Resource::Upstream[http://localhost]/Concat[/etc/nginx/conf.d/http://localhost-upstream.conf]/File[/etc/nginx/conf.d/http://localhost-upstream.conf]/ensure: change from absent to file failed: Could not set 'file' on ensure: No such file or directory @ dir_s_mkdir - /etc/nginx/conf.d/http:/localhost-upstream.conf20180404-5-1pr1vr6.lock
[...UNRELATED-TRACEBACK-OMITTED...]

Note: the full traceback can be further reviewed.

What behaviour did you expect instead

I expect the nginx to be installed, with a reverse proxy configured.

@jeff1evesque
Copy link
Author

jeff1evesque commented Apr 5, 2018

The proxy references were incorrect. After making adjustments, my container now builds:

root@trusty64:/vagrant# docker build --build-arg TYPE=api --build-arg RUN=false --build-arg VHOST=machine-learning-api.com --build-arg HOST_PORT=9090 --build-arg LISTEN_PORT=6000 --build-arg WEBSERVER_PORT=6001 -f nginx.dockerfile -t ml-nginx-api .
Sending build context to Docker daemon  74.41MB
Step 1/17 : FROM ml-base
 ---> 07907ffc22d4
Step 2/17 : ENV ENVIRONMENT docker
 ---> Using cache
 ---> b4901c2eafc6
Step 3/17 : ENV ROOT_PROJECT /var/machine-learning
 ---> Running in bfb3b83bd358
Removing intermediate container bfb3b83bd358
 ---> af780db816ef
Step 4/17 : ENV PUPPET /opt/puppetlabs/bin/puppet
 ---> Running in 16e8d33a72ea
Removing intermediate container 16e8d33a72ea
 ---> d1efc726e198
Step 5/17 : ENV ROOT_PUPPET /etc/puppetlabs
 ---> Running in 411d70ca80ee
Removing intermediate container 411d70ca80ee
 ---> be1a943669b7
Step 6/17 : ENV MODULES $ROOT_PUPPET/code/modules
 ---> Running in 96a0f9770ea1
Removing intermediate container 96a0f9770ea1
 ---> 976866ea39af
Step 7/17 : ENV CONTRIB_MODULES $ROOT_PUPPET/code/modules_contrib
 ---> Running in 164c38fb24f4
Removing intermediate container 164c38fb24f4
 ---> 98088e71f72b
Step 8/17 : ARG RUN
 ---> Running in d10d273f25d9
Removing intermediate container d10d273f25d9
 ---> 807f44cebf35
Step 9/17 : ARG TYPE
 ---> Running in 26247a2d6047
Removing intermediate container 26247a2d6047
 ---> 96718e3a072e
Step 10/17 : ARG VHOST
 ---> Running in 1145fbc579fb
Removing intermediate container 1145fbc579fb
 ---> b6825feb28ef
Step 11/17 : ARG HOST_PORT
 ---> Running in 582ee8cda449
Removing intermediate container 582ee8cda449
 ---> 982b9ff4ec32
Step 12/17 : ARG LISTEN_PORT
 ---> Running in 9e3b3c928938
Removing intermediate container 9e3b3c928938
 ---> 6d7d447bd015
Step 13/17 : ARG WEBSERVER_PORT
 ---> Running in 4d6f3ac953af
Removing intermediate container 4d6f3ac953af
 ---> 10eb1ace518b
Step 14/17 : COPY hiera $ROOT_PROJECT/hiera
 ---> e1d50d9547df
Step 15/17 : COPY puppet/environment/$ENVIRONMENT/modules/reverse_proxy $ROOT_PUPPET/code/modules/reverse_proxy
 ---> cc5c113a323d
Step 16/17 : RUN $PUPPET apply -e "class { reverse_proxy:     run            => '$RUN',     type           => '$TYPE',     vhost          => '$VHOST',     host_port      => '$HOST_PORT',     listen_port    => $LISTEN_PORT,     webserver_port => '$WEBSERVER_PORT', } " --modulepath=$CONTRIB_MODULES:$MODULES --confdir=$ROOT_PUPPET/puppet
 ---> Running in 29f69b666d92
Warning: Unknown variable: 'nginx_version'. at /etc/puppetlabs/code/modules/reverse_proxy/manifests/params.pp:34:27
Warning: Unknown variable: '::reverse_proxy::params::country'. at /etc/puppetlabs/code/modules/reverse_proxy/manifests/init.pp:15:23
Warning: Unknown variable: '::reverse_proxy::params::org'. at /etc/puppetlabs/code/modules/reverse_proxy/manifests/init.pp:16:23
Warning: Unknown variable: '::reverse_proxy::params::state'. at /etc/puppetlabs/code/modules/reverse_proxy/manifests/init.pp:17:23
Warning: Unknown variable: '::reverse_proxy::params::locality'. at /etc/puppetlabs/code/modules/reverse_proxy/manifests/init.pp:18:23
Warning: Unknown variable: '::reverse_proxy::params::unit'. at /etc/puppetlabs/code/modules/reverse_proxy/manifests/init.pp:19:23
Warning: Unknown variable: '::reverse_proxy::params::bit'. at /etc/puppetlabs/code/modules/reverse_proxy/manifests/init.pp:20:23
Warning: Unknown variable: '::reverse_proxy::params::days'. at /etc/puppetlabs/code/modules/reverse_proxy/manifests/init.pp:21:23
Notice: Compiled catalog for 29f69b666d92.intranet.nccoe.nist.gov in environment production in 1.06 seconds
Notice: /Stage[main]/Reverse_proxy::Config/File[/root/build]/ensure: created
Notice: /Stage[main]/Reverse_proxy::Config/File[/root/build/ssl-nginx-api]/ensure: defined content as '{md5}e52e89122155173008fed4ff2355eaf6'
Notice: /Stage[main]/Reverse_proxy::Config/Exec[create-certificate-api]: Triggered 'refresh' from 1 events
Notice: /Stage[main]/Nginx::Package::Debian/Apt::Source[nginx]/Apt::Key[Add key: 573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62 from Apt::Source nginx]/Apt_key[Add key: 573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62 from Apt::Source nginx]/ensure: created
Notice: /Stage[main]/Nginx::Package::Debian/Apt::Source[nginx]/Apt::Setting[list-nginx]/File[/etc/apt/sources.list.d/nginx.list]/ensure: defined content as '{md5}38dd3bfbe3d46866a7fc46a8eba7a763'
Notice: /Stage[main]/Apt::Update/Exec[apt_update]: Triggered 'refresh' from 1 events
Notice: /Stage[main]/Nginx::Package::Debian/Package[nginx]/ensure: created
Notice: /Stage[main]/Nginx::Config/File[/etc/nginx/conf.stream.d]/ensure: created
Notice: /Stage[main]/Nginx::Config/File[/etc/nginx/conf.mail.d]/ensure: created
Notice: /Stage[main]/Nginx::Config/File[/var/nginx]/ensure: created
Notice: /Stage[main]/Nginx::Config/File[/var/log/nginx]/owner: owner changed 'root' to 'www-data'
Notice: /Stage[main]/Nginx::Config/File[/var/log/nginx]/group: group changed 'root' to 'adm'
Notice: /Stage[main]/Nginx::Config/File[/var/log/nginx]/mode: mode changed '0755' to '0750'
Notice: /Stage[main]/Nginx::Config/File[/var/nginx/client_body_temp]/ensure: created
Notice: /Stage[main]/Nginx::Config/File[/var/nginx/proxy_temp]/ensure: created
Notice: /Stage[main]/Nginx::Config/File[/etc/nginx/sites-available]/ensure: created
Notice: /Stage[main]/Nginx::Config/File[/etc/nginx/sites-enabled]/ensure: created
Notice: /Stage[main]/Nginx::Config/File[/etc/nginx/streams-enabled]/ensure: created
Notice: /Stage[main]/Nginx::Config/File[/etc/nginx/streams-available]/ensure: created
Notice: /Stage[main]/Nginx::Config/File[/etc/nginx/nginx.conf]/content: content changed '{md5}f7984934bd6cab883e1f33d5129834bb' to '{md5}4ced68fa346e9856741b81d28261fcef'
Notice: /Stage[main]/Reverse_proxy::Config/Nginx::Resource::Upstream[localhost]/Concat[/etc/nginx/conf.d/localhost-upstream.conf]/File[/etc/nginx/conf.d/localhost-upstream.conf]/ensure: defined content as '{md5}e35a114998865a52d17e28aef0343522'
Notice: /Stage[main]/Reverse_proxy::Config/Nginx::Resource::Server[machine-learning-api.com]/Concat[/etc/nginx/sites-available/machine-learning-api.com.conf]/File[/etc/nginx/sites-available/machine-learning-api.com.conf]/ensure: defined content as '{md5}62445f2a0e0f7c6ca823429eac618677'
Notice: /Stage[main]/Reverse_proxy::Config/Nginx::Resource::Server[machine-learning-api.com]/File[machine-learning-api.com.conf symlink]/ensure: created
Notice: /Stage[main]/Nginx::Service/Service[nginx]: Triggered 'refresh' from 1 events
Notice: Applied catalog in 19.34 seconds
Removing intermediate container 29f69b666d92
 ---> 26fc66e5f7f9
Step 17/17 : CMD ["/bin/sh", "-c", "nginx"]
 ---> Running in a40f4d123252
Removing intermediate container a40f4d123252
 ---> 07bff0661664
Successfully built 07bff0661664
Successfully tagged ml-nginx-api:latest

Whether sufficient logic has been implemented, using the exposed parameters of this module, is another issue that will require me to validate.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant