Coder Social home page Coder Social logo

strangelittlemonkey / facter Goto Github PK

View Code? Open in Web Editor NEW

This project forked from puppetlabs/facter

0.0 2.0 0.0 16.77 MB

Collect and display system facts

Home Page: https://tickets.puppetlabs.com/browse/FACT

License: Apache License 2.0

CMake 3.23% Ruby 13.57% Shell 0.31% HTML 0.37% C++ 81.89% Makefile 0.07% Batchfile 0.03% Dockerfile 0.35% Go 0.17%

facter's Introduction

facter

Gem Version

Modules Status Modules Status Modules Status Test Coverage Maintainability

Facter is a command-line tool that gathers basic facts about nodes (systems) such as hardware details, network settings, OS type and version, and more. These facts are made available as variables in your Puppet manifests and can be used to inform conditional expressions in Puppet.

Documentation

Documentation for the Facter project can be found on the Puppet Docs site.

Supported platforms

  • Linux
  • macOS
  • Windows
  • Solaris
  • AIX

Requirements

  • Ruby 2.5+
  • FFI (for facts like mountpoints which are resolved using C API calls)

Basic concepts

The project has three main parts, the framework, facts and resolvers. In the framework we implement functionality that is agnostic of specific facts like parsing user input, formatting output, etc.

Facts are the nuggets of information that will be provided by facter e.g. os.name, networking.interfaces, etc.

Resolvers have the role of gathering data from the system. For example a resolver can execute a command on the system, can read a file or any operation that retrieves some data from a single source on the system.

Facter user interaction

Getting started

After cloning the project, run bundle install to install all dependencies.

You can run facter by executing ./bin/facter. The command will output all the facts that facter detected for the current OS.

The implementation can be validated locally by running bundle exec rake check.

Goals - fast, easy, compatible

  • Gain performance similar to the C++ version of Facter. We plan to achieve this goal by gathering multiple facts with only one call and by using the faster Win32 API rather than WMI for the Windows implementation.
  • Facilitate community contribution. At the moment, C++ presents a possible impediment for community contributions.
  • Enable native integration with other Ruby-based projects such as Bolt and puppet.
  • Enable native integration for custom facts.
  • Provide 100% compatibility with C++ Facter (drop-in replacement).

Licensing

See LICENSE file. Puppet is licensed by Puppet, Inc. under the Apache license. Puppet, Inc. can be contacted at: [email protected]

facter's People

Contributors

alexandru-d-popa avatar alexavlonitis avatar ariaxli avatar b4ldr avatar bobosilavictor avatar ciprianbadescu avatar cthorn42 avatar dorin-pleava avatar ekohl avatar filipovici-andrei avatar florindragos avatar gabrielnagy avatar georgemrejea avatar gigicampean avatar henriquepjv avatar joelmheim avatar joshcooper avatar luchihoratiu avatar m8051 avatar martingoldstone avatar mhashizume avatar mihaibuzgau avatar natemccurdy avatar nbarrientos avatar oanatmaria avatar puppetlabs-jenkins avatar sebastian-miclea avatar smortex avatar tvpartytonight avatar usev6 avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.