example42 / puppet-apt Goto Github PK
View Code? Open in Web Editor NEWPuppet module to manage apt
Home Page: http://www.example42.com
License: Apache License 2.0
Puppet module to manage apt
Home Page: http://www.example42.com
License: Apache License 2.0
Hello, was wondering if this module could have support for PPA (Personal Package Archive), it would be great to install many packages not currently available on the official apt repos (eg. php 5.4).
Hello,
I tried to use the module but on deploying I'm getting the error
Error: Failed to apply catalog: Parameter path failed on File[undef]: File paths must be fully qualified, not 'undef' at /etc/puppet/modules/apt/manifests/dater/manager.pp:36
This is my definition:
node 'puppet' {
class { 'apt::dater':
role => 'manager',
manager_ssh_key => template('site/apt-dater.priv.key');
}
When trying to apt-pin a package using
node server {
include apt
apt::repository { "squeeze-backports":
url => "http://backports.debian.org/debian-backports",
distro => 'squeeze-backports',
repository => 'main',
}
apt::pin { "puppet-common":
release => "squeeze-backports",
priority => "999",
}
}
I get a syntax error:
Syntax error at 'file'; expected '}' at /home/hilboll/git/puppet/modules/apt/manifests/pin.pp:54 on node puppet1
With the current module, I get the error
E: Syntax error /etc/apt/apt.conf.d/20default-release.conf:1: Extra junk at end of file
when using the conf
class like this:
apt::conf { "default-release":
content => 'APT::Default-Release "squeeze"',
priority => '20',
}
Of course I could add the missing ;
to the end of the content
parameter, but don't you think the module should add the ;
on its own? I can do the appropriate PR, just wanted to check if that's okay with you.
How would I go for checking in the module if the ;
is present at the end of the content
parameter and add one only if necessary?
I have a very simple test manifest which results in a dependency cycle on Debian Squeeze with Puppet 2.7 from squeeze-backports.
node server {
package { apt:
ensure => installed
}
include apt
apt::repository { "squeeze-backports":
url => "http://backports.debian.org/debian-backports",
distro => 'squeeze-backports',
repository => 'main',
source => true,
}
}
The debug output is
debug: /Stage[main]//Node[server]/Apt::Repository[squeeze-backports]/require: requires Class[Apt]
debug: /Stage[main]//Node[server]/Apt::Repository[squeeze-backports]/File[repository_squeeze-backports]/require: requires Package[apt]
debug: /Stage[main]//Node[server]/Apt::Repository[squeeze-backports]/File[repository_squeeze-backports]/before: requires Exec[aptget_update]
debug: /Stage[main]//Node[server]/Apt::Repository[squeeze-backports]/File[repository_squeeze-backports]/notify: subscribes to Exec[aptget_update]
debug: /Stage[main]/Apt/File[apt.conf]/require: requires Package[debconf-utils]
err: Could not apply complete catalog: Found 1 dependency cycle:
(Exec[aptget_update] => Class[Apt] => Apt::Repository[squeeze-backports] => File[repository_squeeze-backports] => Exec[aptget_update])
Is this a bug, or am I doing something wrong?
In my site.pp manifest, having only those 2 lines based on your nextgen modules:
include apt
include rvm
I get the following error:
Error: Could not apply complete catalog: Found 1 dependency cycle:
(Exec[aptget_update] => Package[libreadline6-dev] => Class[Rvm::Dependencies::Ubuntu] => Stage[rvm-install] => Stage[main] => Class[Apt] => Exec[aptget_update])
Try the '--graph' option and opening the resulting '.dot' file in OmniGraffle or GraphViz
I have absolutely no clue as to how to fix this. Hope it helps somehow. Thanks for the numerous modules anyway!
Creating a repo with a key always calls apt::key without passing a keyserver parameter, so defaulting to subkeys.pgp.net, which has been super unreliable lately. I believe we should be able to pass a keyserver to the repository?
README.md is very sparse, no info on how to add apt::key, apt:source, apt:ppa etc
For some reason the author of apt-dater decided to change the configuration format of the management host to XML structures in a minor update (1.0.2 -- changelog), resulting in backwards incompatible generated hosts.conf files.
This breaks apt-dater for the latest Ubuntu release 15.04 which incorporates a 1.0.1 version with some extra commits introducing the XML configuration format.
gert@host:~$ apt-dater
** Message: Creating default config file /home/gert/.config/apt-dater/apt-dater.xml
** Message: Creating default config file /home/gert/.config/apt-dater/hosts.xml
** Message: Creating default config file /home/gert/.config/apt-dater/screenrc
It took me some time to find out why all of this stuff broke down after the Ubuntu 15.04 upgrade and I was surprised to find out this backwards incompatible change in a minor apt-dater release and Debian/Ubuntu having backported it to 1.0.1 as well.
FYI - submitted Ubuntu bug report too: 1451002.
in version 1.8 there was support for unattended-upgrades, including a function for remove-unused-dependencies.
Now I can´t find it back and our service doesn´t do this anymore.
What happened to it?
Regards, F
I`m use this config:
class { 'apt':
source_dir => 'puppet:///modules/mymodule/apt',
}
In path /modules/mymodule/apt i have two files: apt.conf and sources.list, but files in /etc/apt are empty.
Each time puppet seems to run the apt key and ppa get's added over and over?
key and repository to be added once
Notice: /Stage[main]/Hhvm::Install::Package/Apt::Key[2048R/1BE7A449]/Exec[aptkey_add_2048R/1BE7A449]/returns: executed successfully
Notice: /Stage[main]/Varnish::Install/Apt::Key[4096R/C4DEFFEB]/Exec[aptkey_add_4096R/C4DEFFEB]/returns: executed successfully
Notice: /Stage[main]/Php70/Apt::Ppa[ppa:ondrej/php]/Exec[add-apt-repository-ppa:ondrej/php]/returns: executed successfully
Could it have something to do with this output?
apt-key adv --list-public-keys --with-fingerprint --with-colons | grep -q "2048R/1BE7A449"
N: Ignoring file '50unattended-upgrades.ucf-dist' in directory '/etc/apt/apt.conf.d/' as it has an invalid filename extension
N: Ignoring file '50unattended-upgrades.ucf-dist' in directory '/etc/apt/apt.conf.d/' as it has an invalid filename extension
N: Ignoring file '50unattended-upgrades.ucf-dist' in directory '/etc/apt/apt.conf.d/' as it has an invalid filename extension
N: Ignoring file '50unattended-upgrades.ucf-dist' in directory '/etc/apt/apt.conf.d/' as it has an invalid filename extension
N: Ignoring file '50unattended-upgrades.ucf-dist' in directory '/etc/apt/apt.conf.d/' as it has an invalid filename extension
N: Ignoring file '50unattended-upgrades.ucf-dist' in directory '/etc/apt/apt.conf.d/' as it has an invalid filename extension
N: Ignoring file '50unattended-upgrades.ucf-dist' in directory '/etc/apt/apt.conf.d/' as it has an invalid filename extension
N: Ignoring file '50unattended-upgrades.ucf-dist' in directory '/etc/apt/apt.conf.d/' as it has an invalid filename extension
N: Ignoring file '50unattended-upgrades.ucf-dist' in directory '/etc/apt/apt.conf.d/' as it has an invalid filename extension
ccarnell@web:~$
After removing /etc/apt/apt.conf.d/50unattended-upgrades.ucf-dist, the output of the command is blank. However, the issue still remains
sudo puppet agent --test --verbose
node definition:
include apt
apt::key { "4096R/C4DEFFEB": url => 'https://repo.varnish-cache.org/ubuntu/GPG-key.txt' }
OR:
apt::ppa {
"ppa:ondrej/php":
}
Please add this info:
facter -p
:os => {"name"=>"Ubuntu", "family"=>"Debian", "release"=>{"major"=>"16.04", "full"=>"16.04"}, "lsb"=>{"distcodename"=>"xenial", "distid"=>"Ubuntu", "distdescription"=>"Ubuntu 16.04.2 LTS", "distrelease"=>"16.04", "majdistrelease"=>"16.04"}}
osfamily => Debian
Currently, if I want to pin a whole range of packages (e.g. icinga, icinga-web, icinga-common, icinga-core, ...) to a specific apt-repo, I need to define one apt::pin per package. I think it would be great if apt::pin would support setting a list of packages and then iterate through the packages in the template.
Link in Documentation works
Return Code 404
N/A
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.