Comments (12)
Righto then; I'll see what I can come up with. What I had in mind for puppet was something that generates a puppet modules for each "package"
If you have other suggestions, let me know, otherwise that'll be my first target.
from fpm.
That was pretty much my vision - each package has a corresponding module.
from fpm.
+1 neat idea. Not sure what it looks like yet, but potentially really useful.
from fpm.
I'll be working on this during the fpm hackathon tomorrow at DevOpsDays
from fpm.
Beta results here: https://gist.github.com/1033869
Still to do:
- anticlasses for uninstalling a package
- figure out how to do versioning so you can do 'include nodejs::0.4.8::package' (which isn't valid puppet but is still the idea)
from fpm.
That's awesome! Will give it a try.
from fpm.
fpm 0.3.1 has puppet support with anti classes, but it's not very good.
You should be able to take any source type (dir, rpm, gem, etc) and produce a puppet module from it. Example:
# Build convert a 'puppet' rubygem to a puppet module
fpm -s gem -t puppet puppet
Missing:
- dependencies
Poorly implemented:
- some directories should be excluded, like "/usr" and such, but there's no automatic way we can do this reliably. This most poorly affects the 'anticlass' of foo::package::remove
from fpm.
With regards to the puppetsort
def in /target/puppet.rb
, can you provide an example of the sort of hash you envision passing ?
I'm big into standards and style adherence, so this topic hits home for me. ;)
from fpm.
@phrawzty: http://docs.puppetlabs.com/guides/style_guide.html#attribute-ordering
Basically, 'ensure' should be first and perhaps alphabetic after that - mainly i want consistent ordering that aligns with the puppet style guide.
from fpm.
The 'poorly implmeented' part mentioned above (/usr being in the directory list, etc) should be fixed by implementing "basedir" support that will help puppet, rpm, and solaris package targets (all of which can support some variant of "basedir")
from fpm.
I think a good way to handle versioning would be to output a parameterized class in the module. So this way you can pass it when you drop the class or use a sane default.
class { 'someclass':
version => 1.0,
}
Or just include someclass to use the default
from fpm.
fpm -t puppet
was implemented long ago, but it's not well maintained. Fun proof of concept though.
from fpm.
Related Issues (20)
- Could not execute systemctl: at /usr/bin/deb-systemd-invoke line 142.
- add custom metadata in pcakage
- URGENT : BUG - Dependency Confusion Vulnerability leads to RCE(Remote Code Execution) HOT 4
- python: pkg_resources is deprecated HOT 4
- python: stop using `setup.py` as a CLI tool HOT 3
- fpm -t rpm error when workdir contains a + in name.
- "gem install fpm" is not sufficient to have fpm correctly installed HOT 1
- How is this configuration item(config-files) used
- --deb-dist option does not set the distribution
- fpm install fails on RHEL8 Ruby 2.5.0 due to dotenv HOT 10
- Buildroot when building .deb? HOT 3
- How to get RPM to place all files from a local folder inside a specific folder when installed (without including the local folder itself) HOT 1
- fpm output as JSON instead ruby hash?
- too long unix socket path (120bytes given but 108bytes max)
- Any tips for compiling a binary executable of fpm on arm64? HOT 2
- PEP517 Support HOT 1
- Private vulnerability reporting HOT 2
- Sign apk packages
- "--fpm-options-file" fails with "undefined method `extract_value' for nil:NilClass" HOT 1
- When making a deb package is there a way to include files under /debian/test for autopkgtest
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from fpm.