Michael DeHaan & Adrian Likins Red Hat. What is Func? A way to communicate with all your machines and query or control them over the network. Func uses.

Slides:



Advertisements
Similar presentations
Slide 1 IBPhoenix Prague 2006 Making your own Firebird PowerTool (with Python) Pavel Císař IBPhoenix.
Advertisements

Cisco Confidential © 2013 Cisco and/or its affiliates. All rights reserved. 1 Unity Connection Qualification for Prime Collaboration Development Release.
Ellucian Mobile: Don’t text and drive, kids!
Red Hat Linux Network. Red Hat Network Red Hat Network is the environment for system- level support and management of Red Hat Linux networks. Red Hat.
Remote Unit Testing Brian Pruitt-Goddard Alex Riordan.
Microsoft Virtual Server 2005 Product Overview Mikael Nyström – TrueSec AB MVP Windows Server – Setup/Deployment Mikael Nyström – TrueSec AB MVP Windows.
Chapter 2 Applying Practical Automation Speaker : Chuang-Hung Shih Date :
©Kwan Sai Kit, All Rights Reserved Windows Small Business Server 2003 Features.
Business Unit or Product Name © 2007 IBM Corporation Introduction of Autotest Qing Lin.
ANDROID Presented By Mastan Vali.SK. © artesis 2008 | 2 1. Introduction 2. Platform 3. Software development 4. Advantages Main topics.
SQL Server User Group Meeting Reporting Services Tips & Tricks Presented by Jason Buck of Custom Business Solutions.
Operated by Los Alamos National Security, LLC for NNSA U N C L A S S I F I E D Slide 1 LANL-stor and the Challenges of Evolutionary Development Managing.
Page 1 © 2001, Epicentric - All Rights Reserved Epicentric Modular Web Services Alan Kropp Web Services Architect WSRP Technical Committee – March 18,
Kickstart Installation
Mission Critical Application Architecture and Flash August MDCFUG Chafic Kazoun, Founder and CTO Atellis: | Weblog:
Nir Koren DevOps & Integration Lead, SAP Labs Israel June 2013 Connect your tools to Jenkins Using the basic Jenkins API’s Jenkins User Conference Jenkins.
Internet2 AdvCollab Apps 1 Access Grid Vision To create virtual spaces where distributed people can work together. Challenges:
Linux Operations and Administration
Automating Legacy Network Devices
Operated by Los Alamos National Security, LLC for NNSA U N C L A S S I F I E D Slide 1 Institutional Install of Red Hat Enterprise Linux From One CD In.
Arizona SharePoint Professionals Group.
Intro To Virtualization Mohammed Morsi
Spacewalk + Fedora = 42. What is Spacewalk? A systems management platform designed to provide complete lifecycle management of the operating system and.
Michael DeHaan Provisioning with Cobbler, Red Hat.
XNAT 1.7: Getting Started 6 June, Introduction In this presentation we’ll discuss:  Features and functions in XNAT 1.7  Requirements  Installing.
April 1st, 2009 Cobbler Provisioning Made Easy Jasper Capel.
Introduction to Operating Systems Concepts
Introduction to Ansible
IBM System x Systems Management Made Easy ibm
Generic registration Douglas Schilling Landgraf
Development Environment
Chapter Objectives In this chapter, you will learn:
Jason Bury Dylan Drake Rush Corey Watt
The Architecture of oVirt Node
z/Ware 2.0 Technical Overview
CompTIA Server+ Certification (Exam SK0-004)
Google Web Toolkit Tutorial
GWE Core Grid Wizard Enterprise (
PYTHON: AN INTRODUCTION
Chapter 2: System Structures
Logo here Module 3 Microsoft Azure Web App. Logo here Module Overview Introduction to App Service Overview of Web Apps Hosting Web Applications in Azure.
Operating System Structure
Configuration Management with Azure Automation DSC
Spacewalk and Koji at Fermilab
PHP / MySQL Introduction
Drupal VM and Docker4Drupal For Drupal Development Platform
Migrating Oracle Forms Using Oracle Application Express
Drupal VM and Docker4Drupal as Consistent Drupal Development Platform
Ansible and Zabbix Rushikesh Prabhune (Software Technical Consultant)
DHCP, DNS, Client Connection, Assignment 1 1.3
Challenges in Network Troubleshooting In big scale networks, when an issue like latency or packet drops occur its very hard sometimes to pinpoint.
Outline Overview Development Tools
Chapter 2: System Structures
OPS235: Week 1 Installing Linux ( Lab1: Investigations 1-4)
IBM System x Systems Management Made Easy ibm
Introduction to Ansible
Presented By - Avinash Pawar
Module 01 ETICS Overview ETICS Online Tutorials
In this session… Introduce what we’re talking about
Chapter 17: Client/Server Computing
Agile testing for web API with Postman
Remote Computing Services Cloud connection Distributed system
Open Automation Software
Chapter 2: Operating-System Structures
APACHE WEB SERVER.
Software - Operating Systems
Building Map Books in ArcGIS
PyWBEM Python WBEM Client: Overview #2
Mark Quirk Head of Technology Developer & Platform Group
ArcGIS Pro: An Introduction Overview
Presentation transcript:

Michael DeHaan & Adrian Likins Red Hat

What is Func? A way to communicate with all your machines and query or control them over the network. Func uses XMLRPC. It's designed to be a way to writing systems management apps for a very large number of systems.

Feature Overview Remote API for systems management Secure XMLRPC over SSL connections Python API and CLI interfaces (Python is great for system administration apps!) SSL cert management tools, via 'certmaster'

But Wait, There's More! Flexible machine name globbing, and user defined groups Automates SSL certificate generation and deployment Can notify administrators of new requests Supports autosigning Integrates easily with kickstart & Cobbler Modular, very easy to extend

Why Not Just Use SSH? It's an API With return codes And error messages Structured data returned You don't have to “\“\'\('figure out weird shell quoting'\)\'\”

Supported Platforms Red Hat Enterprise Linux 4 and later (EPEL) Fedora 6 and later Debian* FreeBSD* (* Interested in getting them in the distro? Talk to us)

What Can You Do With It? Use apps like FuncInventory and the Exploding Laptop Finder Run arbitrary commands Track files Hardware profiling Process info and control Reboot and restart Package install/update Manage virtualized machines Whatever else you like (user extensible w/ modules, can also call shell functions)

Func Architecture Overlord Minion Certmaster

Func Minion This is “funcd” SSL XML-RPC daemon running on “client” machine (the machine you are controlling) Local modules on each minion are surfaced over XMLRPC

Func Minion Modules There is a Python interface for creating modules Modules are simple, lots of examples to copy from Some introspection available List the modules available remotely List the methods (pending) Get the method signatures and build UI programmatically

Func Overlord This is the machine issuing commands Can be multiple machines (just share the certs) CLI script interface for now XMLRPC interface pending?

Certmaster Automates creation of SSL certificates Can autosign if desired Triggers are available to take action on recieving requests Certificate created can be used by other apps Usable without Func -- fedorahosted.org/certmaster

FuncInventory An example of the power of the Func API: # func-inventory [--help] Ask every regisered machine what modules it has Asks what modules support inventory data Saves inventory data per system using git You get RSS feeds of the diffs Only ~200 lines of Python!

Func command line Examples: Func “foo*.example.org” call command run “/sbin/halt -p” Func foo Func “foo*.example.org” copyfile –-file=/tmp/a -- remotepath=/tmp/b

Custom Command Line Modules Module API for creating custom CLI sub commands No recompilation or rebuilds needed. See “copyfile” for an example

API Demos You've got a weird task from your boss. You need to solve this really quickly. Two arbitrary examples: (A) generate a report of all the laptops you have that might explode (B) generate a report of all the hard drives you have that are about to fail

Complete “Exploding Battery Finder” API Demo import func.overlord.client as fc import func.utils as utils bad = open("./part_data.txt").read().split() info = fc.Overlord("*").hardware.hal_info() for (host,details) in info.iteritems(): if utils.is_error(details): print "%s had an error : %s" % (host,details[1:3]) break for (device, full_output) in details.iteritems(): for bad_value in bad: if full_output.find(bad_value) != -1: print "%s has flagged part: %s, matched %s" % (host, device, bad_value) break

Raw Data for “Exploding Battery Finder” Just simple text: 92P P P P P P P1170", "92P1169", 93P P P P5030 1K055 C5446 F2100 KD494 W5915 Y1333 3K590 C6269 F5132 OR33X5308 Y4500 5P474 C6270 GD785 M3006 X5329 Y5466 6P922 D2961 H3191 RD857 X5332 C2603 D5555 J1524 TD349 X5333 C5339 D6024 JD616 U5867 X5875 C5340 D6025 JD617 U5882 X5877

Complete “Failing Hard Drive” API Demo import func.overlord.client as fc import func.utils as utils info = fc.Overlord("*").smart.info() failures = 0 for (host,details) in info.iteritems(): if utils.is_error(details): print "%s had an error : %s" % (host,details[1:3]) break (rc, list_of_output) = details if rc != 0: print "============================================" print "Host %s may have problems" % host print "\n".join(list_of_output[3:]) failures = failures + 1 print "\n%s systems reported problems" % failures

Authorization and ACLS Maps certificate ids to allowed methods On certain servers, only allow certain overlords to run certain modules

The Future Improved SSL features Cert revocation GSOC student projects (thanks Google!) Extend funcweb, new modules, API enhancements More modules XMLRPC to Overlord Get more apps using Func for network communication World domination

Additional resources Your comments, questions, bug reports, patches, and ideas are always welcome and help make Func what it is. Please share them with us. hosted.fedoraprojects.org/func #func, on freenode irc network

Q&A...