oracle / puppet-solaris_providers Goto Github PK
View Code? Open in Web Editor NEWOracle Solaris Puppet Module
License: Apache License 2.0
Oracle Solaris Puppet Module
License: Apache License 2.0
When passing sslkey and sslcert to pkg_publisher, on subsequent runs it thinks the values have changed as the provider always reads them back out as nil
.
Notice: /Stage[main]/Oracle::Packages/Pkg_publisher[exa-family]/sslkey:
sslkey changed '' to '/var/tmp/pkg.oracle.com.key'
Notice: /Stage[main]/Oracle::Packages/Pkg_publisher[exa-family]/sslcert:
sslcert changed '' to '/var/tmp/pkg.oracle.com.crt'
The README has the following instructions to install these providers:
For Solaris 11.x puppet module install oracle-solaris_providers
This fails however:
root@test1:/etc/puppet/modules# puppet module install oracle-solaris_providers
Notice: Preparing to install into /etc/puppet/modules ...
Notice: Downloading from https://forgeapi.puppetlabs.com ...
Error: Could not install 'oracle-solaris_providers' (latest)
No releases are available from https://forgeapi.puppetlabs.com
Does 'oracle-solaris_providers' have at least one published release?
When using the 'dns' provider, if 'options' is not populated, the first Puppet run runs successfully, but subsequent runs gives the following error:
Error: Failed to apply catalog: undefined method `gsub' for nil:NilClass
I believe this is because of the following code snippet:
puppet-solaris_providers/lib/puppet/provider/dns/solaris.rb
Lines 34 to 42 in f218daa
That portion relies on the 1st and 3rd columns to be populated in the following svcprop output:
# svcprop -p config svc:/network/dns/client
config/domain astring us.oracle.com
config/nameserver net_address 10.209.76.197 10.209.76.198 192.135.82.132
config/options astring
config/search astring us.oracle.com oraclecorp.com oracle.com sun.com
config/value_authorization astring solaris.smf.value.name-service.dns.client
The "config/options" line does not have a column 3, so the "value" variables ends up empty and "value.gsub" throws the "nil:NilClass" error.
The simplest example:
pkg_publisher { 'solaris':
origin => 'http://pkg.oracle.com/solaris'
}
Produces the following output when the agent is run:
Info: Caching catalog for solgen2.us.oracle.com
Info: Applying configuration version 'd261b54492281811e27e7c460eb7ea9d006e76b2'
svcadm: Instance "svc:/application/puppet:agent" is not online.
Error: Failed to apply catalog: undefined method `include?' for nil:NilClass
puppet resource protocol_properties icmp
protocol_properties { 'icmp':
ensure => 'absent',
}
vs
puppet resource protocol_properties
protocol_properties { 'dhcpv4':
ensure => 'present',
properties => {'client-id' => '', 'offer-wait' => '', 'param-ignore-list' => '', 'param-request-list' => '', 'verified-lease-only' => ''},
}
protocol_properties { 'dhcpv6':
ensure => 'present',
properties => {'client-id' => '', 'offer-wait' => '', 'param-ignore-list' => '', 'param-request-list' => '', 'verified-lease-only' => ''},
}
protocol_properties { 'icmp':
ensure => 'present',
properties => {'max-buf' => '65536', 'recv-buf' => '8192', 'send-buf' => '8192'},
}
...
I have created a resource
svccfg { 'svc:/network/dns/client/:properties/config/search':
ensure => 'present',
type => 'astring',
value => 'test.local.com',
notify => Service['svc:/network/dns/client:default'];
}
svcprop -s -f svc:/network/dns/client/:properties/config/search
test.local.com
The resource creates the property without any issue, but however when we ran the puppet agent again it keeps createing he same property and refreshing the service
Notice: /Stage[main]/Resolv_conf/Svccfg[svc:/network/dns/client/:properties/config/search]/ensure: created
Info: /Stage[main]/Resolv_conf/Svccfg[svc:/network/dns/client/:properties/config/search]: Scheduling refresh of Service[svc:/network/dns/client:default]
There appears to be issues when specifying values that contain spaces.
eg:
nsswitch { 'current':
group => 'files ldap',
}
The above returns an error:
Error: value: "files\\ ldap"
Execution of '/usr/sbin/svccfg -s svc:/system/name-service/switch setprop config/group=files\ ldap' returned 1: svccfg: Unknown type "files\".
Error: /Stage[main]/Profile::Base::Solaris::Ldap/Nsswitch[current]/group: change from 'files' to 'files ldap' failed: value: "files\\ ldap"
Execution of '/usr/sbin/svccfg -s svc:/system/name-service/switch setprop config/group=files\ ldap' returned 1: svccfg: Unknown type "files\".
But this does not occur if the value was set to "files ldap" manually.
Relative links only work if you view README.md directly, not in the auto displayed version when you view the repository at the top level.
The following works fine and only adds the publisher once:
pkg_publisher { 'solaris':
origin => 'http://pkg.us.oracle.com/solaris'
}
The following adds/updates the publisher multiple times (note the trailing '/' in the 'origin')
pkg_publisher { 'solaris':
origin => 'http://pkg.us.oracle.com/solaris/'
}
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.