I'm working on a DHCP module, modeled after this
https://github.com/camptocamp/puppet-dhcp . Mine is just a much simpler version as I don't manage multiple OSes in my environment. However I cannot get my subnet file to create, this is the error from debug I get
"err: /Stage[main]/Fog_server/Dhcp::Subnet[10.1.0.1]/File[/etc/subnets/10.1.0.1.conf]/ensure: change from absent to present failed: Could not set 'present on ensure: No such file or directory - /etc/subnets/10.1.0.1.conf.puppettmp_5637 at /etc/puppet/modules/dhcp/manifests/definitions/subnet.pp:18"
See below for the full output and my modules.
Been pulling my hair out for past day over this so any help is greatly appreciated.
Thanks
- Trey
== modules/dhcp/manifests/init.pp ==
import "classes/*.pp"
import "definitions/*.pp"
class dhcp {
$dhcp_config_dir = "/etc/dhcp"
include dhcp::server
}
== modules/dhcp/manifests/classes/server.pp ==
class dhcp::server {
package {"dhcp":
ensure => present,
}
service {"dhcpd":
ensure => running,
enable => true,
require => Package["dhcp"],
}
file {"$dhcp_config_dir":
ensure => directory,
source => 'puppet:///dhcp/empty',
recurse => true,
purge => true,
owner => 'root',
group => 'root',
mode => '755',
require => Package['dhcp'],
}
file {"$dhcp_config_dir/subnets":
ensure => directory,
source => 'puppet:///dhcp/empty',
recurse => true,
purge => true,
owner => 'root',
group => 'root',
mode => '755',
notify => Service['dhcpd'],
require => File["$dhcp_config_dir"],
}
file {"/etc/dhcpd.conf":
content => template("dhcp/dhcpd_conf.erb"),
ensure => present,
require => Package["dhcp"],
notify => Service["dhcpd"],
}
}
== modules/dhcp/manifests/definitions/subnets.pp ==
define dhcp::subnet (
$name=false,
$netmask=false,
$range_start=false,
$range_end=false,
$router=false,
$domain_name=false,
$dns_servers=false,
$pxe_opts=false) {
file {"/etc/subnets/$name.conf":
ensure => present,
owner => 'root',
group => 'root',
content => template("dhcp/subnet_conf.erb"),
notify => Service["dhcpd"],
require => File['/etc/dhcp/subnets'],
}
}
== manifests/roles.pp ==
class role_dhcp_server {
$my_role = "dhcp_server"
$dhcpd_dns_servers = "0.0.0.0, 0.0.0.0"
$dhcpd_authoritative = true
$dhcpd_ddns_update = "interim"
$dhcpd_opts = [ 'allow booting', 'allow bootp', 'use-host-decl-names on', 'ignore client-updates' ]
include dhcp
dhcp::subnet { "10.1.0.1":
name => '10.1.0.1',
netmask => '255.255.255.0',
range_start => '10.1.0.10',
range_end => '10.1.0.254',
router => '10.1.0.1',
dns_servers => "0.0.0.0, 0.0.0.0",
pxe_opts => [ 'filename "pxelinux.0";' ],
}
}
== The error ==
# puppetd --test --debug -vvv
debug: Failed to load library 'ldap' for feature 'ldap'
debug: Puppet::Type::User::ProviderLdap: feature ldap is missing
debug: Puppet::Type::User::ProviderUser_role_add: file rolemod does not exist
debug: Puppet::Type::User::ProviderDirectoryservice: file /usr/bin/dscl does not exist
debug: Puppet::Type::User::ProviderPw: file pw does not exist
debug: Failed to load library 'rubygems' for feature 'rubygems'
debug: Failed to load library 'selinux' for feature 'selinux'
debug: Puppet::Type::File::ProviderMicrosoft_windows: feature microsoft_windows is missing
debug: /File[/var/lib/puppet/clientbucket]: Autorequiring File[/var/lib/puppet]
debug: /File[/var/lib/puppet/ssl/certs/ca.pem]: Autorequiring File[/var/lib/puppet/ssl/certs]
debug: /File[/var/lib/puppet/ssl]: Autorequiring File[/var/lib/puppet]
debug: /File[/etc/puppet/namespaceauth.conf]: Autorequiring File[/etc/puppet]
debug: /File[/etc/puppet/puppet.conf]: Autorequiring File[/etc/puppet]
debug: /File[/var/lib/puppet/state/last_run_summary.yaml]: Autorequiring File[/var/lib/puppet/state]
debug: /File[/var/lib/puppet/state/last_run_report.yaml]: Autorequiring File[/var/lib/puppet/state]
debug: /File[/var/log/puppet/http.log]: Autorequiring File[/var/log/puppet]
debug: /File[/var/lib/puppet/client_yaml]: Autorequiring File[/var/lib/puppet]
debug: /File[/var/lib/puppet/ssl/certs]: Autorequiring File[/var/lib/puppet/ssl]
debug: /File[/var/lib/puppet/ssl/crl.pem]: Autorequiring File[/var/lib/puppet/ssl]
debug: /File[/var/lib/puppet/ssl/certificate_requests]: Autorequiring File[/var/lib/puppet/ssl]
debug: /File[/var/lib/puppet/ssl/public_keys/itscfognode.tamu.edu.pem]: Autorequiring File[/var/lib/puppet/ssl/public_keys]
debug: /File[/var/lib/puppet/client_data]: Autorequiring File[/var/lib/puppet]
debug: /File[/var/lib/puppet/lib]: Autorequiring File[/var/lib/puppet]
debug: /File[/var/lib/puppet/ssl/private_keys]: Autorequiring File[/var/lib/puppet/ssl]
debug: /File[/var/lib/puppet/state]: Autorequiring File[/var/lib/puppet]
debug: /File[/var/lib/puppet/ssl/private]: Autorequiring File[/var/lib/puppet/ssl]
debug: /File[/var/lib/puppet/state/graphs]: Autorequiring File[/var/lib/puppet/state]
debug: /File[/var/lib/puppet/classes.txt]: Autorequiring File[/var/lib/puppet]
debug: /File[/var/lib/puppet/ssl/public_keys]: Autorequiring File[/var/lib/puppet/ssl]
debug: /File[/var/lib/puppet/state/state.yaml]: Autorequiring File[/var/lib/puppet/state]
debug: /File[/var/lib/puppet/ssl/private_keys/itscfognode.tamu.edu.pem]: Autorequiring File[/var/lib/puppet/ssl/private_keys]
debug: /File[/var/lib/puppet/ssl/certs/itscfognode.tamu.edu.pem]: Autorequiring File[/var/lib/puppet/ssl/certs]
debug: /File[/var/lib/puppet/facts]: Autorequiring File[/var/lib/puppet]
debug: Finishing transaction 23631659864180
debug: /File[/etc/puppet/namespaceauth.conf]: Autorequiring File[/etc/puppet]
debug: /File[/var/lib/puppet/ssl/crl.pem]: Autorequiring File[/var/lib/puppet/ssl]
debug: /File[/var/lib/puppet/ssl/public_keys/itscfognode.tamu.edu.pem]: Autorequiring File[/var/lib/puppet/ssl/public_keys]
debug: /File[/var/lib/puppet/ssl/certs]: Autorequiring File[/var/lib/puppet/ssl]
debug: /File[/var/lib/puppet/lib]: Autorequiring File[/var/lib/puppet]
debug: /File[/var/lib/puppet/ssl/certs/itscfognode.tamu.edu.pem]: Autorequiring File[/var/lib/puppet/ssl/certs]
debug: /File[/var/lib/puppet/ssl/private]: Autorequiring File[/var/lib/puppet/ssl]
debug: /File[/var/lib/puppet/facts]: Autorequiring File[/var/lib/puppet]
debug: /File[/var/lib/puppet/ssl/certs/ca.pem]: Autorequiring File[/var/lib/puppet/ssl/certs]
debug: /File[/var/lib/puppet/state]: Autorequiring File[/var/lib/puppet]
debug: /File[/var/log/puppet/http.log]: Autorequiring File[/var/log/puppet]
debug: /File[/var/lib/puppet/ssl/certificate_requests]: Autorequiring File[/var/lib/puppet/ssl]
debug: /File[/var/lib/puppet/ssl/private_keys]: Autorequiring File[/var/lib/puppet/ssl]
debug: /File[/var/lib/puppet/ssl/public_keys]: Autorequiring File[/var/lib/puppet/ssl]
debug: /File[/var/lib/puppet/ssl/private_keys/itscfognode.tamu.edu.pem]: Autorequiring File[/var/lib/puppet/ssl/private_keys]
debug: /File[/var/lib/puppet/ssl]: Autorequiring File[/var/lib/puppet]
debug: Finishing transaction 23631658931580
debug: Using cached certificate for ca
notice: Ignoring --listen on onetime run
debug: Finishing transaction 23631660726540
debug: Loaded state in 0.00 seconds
debug: Using cached certificate for ca
debug: Using cached certificate_revocation_list for ca
debug: catalog supports formats: b64_zlib_yaml dot marshal pson raw yaml; using pson
debug: Puppet::Type::Package::ProviderRpm: Executing '/bin/rpm --version'
debug: Puppet::Type::Package::ProviderYum: Executing '/bin/rpm --version'
debug: Puppet::Type::Package::ProviderUrpmi: Executing '/bin/rpm -ql rpm'
debug: Puppet::Type::Package::ProviderAptrpm: Executing '/bin/rpm -ql rpm'
debug: Puppet::Type::Service::ProviderRunit: file /usr/bin/sv does not exist
debug: Puppet::Type::Service::ProviderGentoo: file /sbin/rc-update does not exist
debug: Puppet::Type::Service::ProviderDebian: file /usr/sbin/update-rc.d does not exist
debug: Puppet::Type::Service::ProviderDaemontools: file /usr/bin/svstat does not exist
debug: Puppet::Type::Service::ProviderLaunchd: file /bin/launchctl does not exist
debug: Puppet::Type::Package::ProviderAptrpm: file apt-get does not exist
debug: Puppet::Type::Package::ProviderSunfreeware: file pkg-get does not exist
debug: Puppet::Type::Package::ProviderPortupgrade: file /usr/local/sbin/portinstall does not exist
debug: Puppet::Type::Package::ProviderOpenbsd: file pkg_info does not exist
debug: Puppet::Type::Package::ProviderAptitude: file /usr/bin/aptitude does not exist
debug: Puppet::Type::Package::ProviderGem: file gem does not exist
debug: Puppet::Type::Package::ProviderUrpmi: file urpmi does not exist
debug: Puppet::Type::Package::ProviderPkg: file /usr/bin/pkg does not exist
debug: Puppet::Type::Package::ProviderApt: file /usr/bin/apt-get does not exist
debug: Puppet::Type::Package::ProviderSun: file /usr/bin/pkginfo does not exist
debug: Puppet::Type::Package::ProviderNim: file /usr/sbin/nimclient does not exist
debug: Puppet::Type::Package::ProviderRug: file /usr/bin/rug does not exist
debug: Puppet::Type::Package::ProviderPortage: file /usr/bin/eix does not exist
debug: Puppet::Type::Package::ProviderFink: file /sw/bin/fink does not exist
debug: Puppet::Type::Package::ProviderHpux: file /usr/sbin/swlist does not exist
debug: Puppet::Type::Package::ProviderFreebsd: file /usr/sbin/pkg_info does not exist
debug: Puppet::Type::Package::ProviderZypper: file /usr/bin/zypper does not exist
debug: Puppet::Type::Package::ProviderDpkg: file /usr/bin/dpkg does not exist
debug: Puppet::Type::Package::ProviderAix: file /usr/sbin/installp does not exist
debug: Puppet::Type::Package::ProviderUp2date: file /usr/sbin/up2date-nox does not exist
debug: Puppet::Type::Package::ProviderPorts: file /usr/local/sbin/portupgrade does not exist
debug: Creating default schedules
debug: Loaded state in 0.00 seconds
debug: Prefetching yum resources for package
debug: Puppet::Type::Package::ProviderYum: Executing '/bin/rpm --version'
debug: Puppet::Type::Package::ProviderYum: Executing '/bin/rpm -qa --nosignature --nodigest --qf '%{NAME} %|EPOCH?{%{EPOCH}}:{0}| %{VERSION} %{RELEASE} %{ARCH}
''
debug: /Stage[main]/Timezone::Central/File[/etc/localtime]/require: requires Package[tzdata]
debug: /Stage[main]/Dhcp::Server/File[/etc/dhcp/subnets]/require: requires File[/etc/dhcp]
debug: /Stage[main]/Dhcp::Server/File[/etc/dhcp/subnets]/notify: subscribes to Service[dhcpd]
debug: /Stage[main]/Dhcp::Server/File[/etc/dhcpd.conf]/require: requires Package[dhcp]
debug: /Stage[main]/Dhcp::Server/File[/etc/dhcpd.conf]/notify: subscribes to Service[dhcpd]
debug: /Stage[main]/Ntp::Base/File[/etc/ntp.conf]/require: requires Package[ntp]
debug: /Stage[main]/Ntp::Base/File[/etc/ntp.conf]/notify: subscribes to Service[ntpd]
debug: /Stage[main]/Dhcp::Server/File[/etc/dhcp]/require: requires Package[dhcp]
debug: /Stage[main]/Fog_server/Dhcp::Subnet[10.1.0.1]/File[/etc/subnets/10.1.0.1.conf]/require: requires File[/etc/dhcp/subnets]
debug: /Stage[main]/Fog_server/Dhcp::Subnet[10.1.0.1]/File[/etc/subnets/10.1.0.1.conf]/notify: subscribes to Service[dhcpd]
debug: /Stage[main]/Dhcp::Server/Service[dhcpd]/require: requires Package[dhcp]
debug: /Stage[main]/Repos::Epel/Yumrepo[epel]/require: requires File[/etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL]
debug: /Stage[main]/Ntp::Base/Service[ntpd]/require: requires Package[ntp]
info: Applying configuration version '1307452961'
debug: file_metadata supports formats: b64_zlib_yaml marshal pson raw yaml; using pson
debug: file_metadata supports formats: b64_zlib_yaml marshal pson raw yaml; using pson
err: /Stage[main]/Fog_server/Dhcp::Subnet[10.1.0.1]/File[/etc/subnets/10.1.0.1.conf]/ensure: change from absent to present failed: Could not set 'present on ensure: No such file or directory - /etc/subnets/10.1.0.1.conf.puppettmp_9864 at /etc/puppet/modules/dhcp/manifests/definitions/subnet.pp:18
notice: /Stage[main]/Dhcp::Server/Service[dhcpd]: Dependency File[/etc/subnets/10.1.0.1.conf] has failures: true
warning: /Stage[main]/Dhcp::Server/Service[dhcpd]: Skipping because of failed dependencies
debug: file_metadata supports formats: b64_zlib_yaml marshal pson raw yaml; using pson
debug: Service[ntpd](provider=redhat): Executing 'ps -ef'
debug: Service[ntpd](provider=redhat): PID is 2874
debug: Puppet::Type::Service::ProviderRedhat: Executing '/sbin/chkconfig ntpd'
debug: file_metadata supports formats: b64_zlib_yaml marshal pson raw yaml; using pson
debug: Finishing transaction 23631658503540
debug: Storing state
debug: Stored state in 0.01 seconds
notice: Finished catalog run in 0.52 seconds
debug: Using cached certificate for ca
debug: Using cached certificate_revocation_list for ca
debug: Value of 'preferred_serialization_format' (pson) is invalid for report, using default (b64_zlib_yaml)
debug: report supports formats: b64_zlib_yaml marshal raw yaml; using b64_zlib_yaml