PIKT README
PIKT README
INTRODUCTION
If you haven't already done so, be sure to visit the Intro pages at the PIKT
website
https://pikt.org/pikt/intro/intro.html
for inspiration and a nice overview of the PIKT system.
Please read the INSTALL file for instructions on how to build, install,
and configure PIKT for your system(s). (Check the top-level directory for
special README files for several OSes.)
********************************** NOTICE ************************************
We have replaced the old, plain-text version of the documentation in the doc
directory with nicely formatted, hyper-linked HTML pages. You will, of course,
need a Web browser to view the new HTML documentation. In most cases, links
will take you to other pages in the doc directory. In some cases, for less
essential documentation, or for the most up-to-date material, links will take
you to pages at the pikt.org website. We hope and trust that the new
documentation format will make understanding and using PIKT much easier and
clearer.
********************************** NOTICE ************************************
The Tutorial (in the doc/tutorial directory) is based on the configuration in
the lib/configs_starter directory. Together with INSTALL, the Tutorial should
get you up and running in fairly short order.
Look to the Samples pages at the PIKT website
https://pikt.org/pikt/samples/samples.html
also the files in the directory lib/configs_samples (but view its README
file) for a wealth of examples and sample configurations.
You can learn much more about the PIKT system by studying the validation test
config files (in src/test/lib/configs). (See the INSTALL file, also
bin/Makefile, for more details.)
Of course, refer along the way to the PIKT Reference manual (in the doc/ref
directory) as needed. RTFM! (The Reference is also available on-line at
https://pikt.org/pikt/ref/ref.html.)
Unfortunately, the more supported OSes, the harder it is for the core
development team to have root-level access to every supported platform.
We ourselves cannot do direct QA testing on most of the supported OSes.
We rely instead on volunteers testing the many "pre" releases leading up
to the "official" release. We have no reports of any significant problems,
large or small, but to be on the safe side, you should probably run your
own validation tests (the 'make check' described in the INSTALL file).
If you have any problems, please send your problem reports to:
Like everybody else on the planet it seems, we are giving consideration to
--sorry!--starting yet another blog, this one to cover All Things PIKT.
Please stay tuned.
********************************* IMPORTANT **********************************
There are still unresolved issues involving 64-bit systems intermixing with
32-bit systems. So, for example, private key authentication and encrypted
network traffic between a 64-bit piktmaster and 32-bit PIKT slaves might not
work. See https://pikt.org/pikt/ref/ref.4.PIKT.conf.html and
https://pikt.org/pikt/ref/ref.4.keys.conf.html for more details, and
suggested workarounds.
********************************* IMPORTANT **********************************
RELEASE NOTES
The current PIKT release, version 1.19.0, is the latest in a series of
several dozen public official and beta PIKT releases dating back to 1998.
PIKT 1.19.0 is a major new-features release. Here are just a few of the
significant changes since the last official release (version 1.18.x):
* Substantially revised the PIKT Reference, adding many more examples
(including links to new web pages at pikt.org detailing function usage),
expanding on several sections, and updating to reflect details in recent
software versions.
* piktc '-x' & '-X' operations may now piggyback onto other piktc operations
(e.g., '-i'), so that one can now, for example, install and execute a
post-install command in one go.
* Added a new piktc & pikt command-line option, '-U', for running in
"urgent mode" (where no lock file blocks operation).
* Added a new piktc command-line option, '-p#', for pausing # seconds between
successive piktc operations. Also added the '-p#' option to piktx.
* Implemented per-host (set in keys.conf) data_encryption_type &
auth_encryption_type.
* Introduced several new alarm status settings: suspended, testing,
debugging.
* Implemented a new built-in define, pikttest.
* Reformulated the '-T' command-line option to activate the new pikttest
define, also to report actions rather than exec them, and in general to
set up special test environments.
* Added several new built-in macros.
* Improved debug output, error handling, and logging.
See the NEWS file (also available on-line at https://pikt.org/pikt/news.html)
for more details. (Look at the ChangeLog for the real gory details.)
In total, these changes helped to make possible some powerful new techniques
for enhancing PIKT's effectiveness and easing its configuration and management.
Visit
https://pikt.org/pikt/intro/intro.html
for a fuller account of these exciting new possibilities.
Thanks as always to Harlan Stenn and Michel Blanc for their work in preparing
this release.
This is the first major PIKT release in over two and a half years. I have
found new employment in a computing environment much different from the
university computing environment where PIKT was first developed. In my
former university environment, we supported many thousands of users, from
power users to clueless newbies, and the focus was on user account and process
management; in my current position, we support a few dozen desktop users,
but we obsess on keeping our production servers up and running. Before,
occasional downtime was acceptable; now, operations must run essentially 24/7.
Before, we maintained a mix of sixty or so Solaris, SunOS, and Linux systems;
now, we maintain over a hundred servers and user desktops running mostly
Gentoo Linux, with a handful of Solaris boxes off to the side.
These changes in my work environment inspired most of the PIKT 1.19.0 new
developments.
After the first several years of frenetic PIKT development, new development
languished somewhat from late 2002 until late 2006. In 2007, serious work
on PIKT (much of it in the area of documentation) resumed. If all goes well,
we anticipate advancing PIKT into the foreseeable future.
BACKGROUND
Work on PIKT began over ten years ago, early in 1997. The piktc and piktc_svc
components were developed first, with half the development done on a Solaris
box and the other half done at home on a Linux box. Development of pikt and
piktd started about six months later. Once I had something useful, development
work was done exclusively on a Solaris system (a SPARC 10 running Solaris
5.5), with the SunOS port kept equally current. PIKT was put into production
use in October 1997 on about a dozen and a half Solaris and SunOS systems.
Linux development was set aside for the most part, but I did attempt to
bring the Linux port up to date every four months or so without putting it
into actual production use.
For five years or so, we used PIKT in a busy, complex production environment,
with a SPARC 10 running Solaris 5.5 playing the role of both development
platform and master control machine (this was replaced by a SPARC 20 running
Solaris 5.7 and later by an Ultra 5 running Solaris 5.8), and with over 50
Solaris systems, no more than half a dozen SunOS systems, and a handful of
Linux systems serving as slaves.
In early 2003, I parted company with my former employer and began devoting
most of my attention to my other passion, early music (European music from
the Middle Ages, Renaissance, and Baroque). For the next 3-1/2 years, I used
PIKT in a personal capacity, mainly for web development, on a half dozen or
more home (first Mandrake, now SuSE) Linux systems.
********************************** NOTICE ************************************
If you hadn't noticed, We've moved! Since 2003, the official URL for the
PIKT Project is https://pikt.org. Please change your bookmarks and other
links accordingly.
********************************** NOTICE ************************************
I use PIKT to manage several websites, including: Early MusiChicago
(earlymusichicago.org); my brother Russ' Windows programming utilities site,
SmidgeonSoft (smidgeonsoft.com); a number of smaller sites; and of course
the PIKT website (pikt.org). All told, I have PIKT manage over 1,000
webpages, not to mention the usual system configuration files and system
monitoring functions. My personal PIKT configuration is huge--nearly 1,500
.cfg files in over 50 subdirectories!
In late 2006, I found new employment in the area of Linux systems
administration. PIKT is integral to my work, and much of my time is spent
programming, configuring, and managing PIKT. My work PIKT configuration is
not so huge, "just" (at last count) 82 .cfg files in 11 directories, but
much of the smaller size is because at work I don't maintain any web pages--
it's strictly monitoring so far; PIKT configuration management still lies
ahead.
Judging by "repeat customers" (sites downloading different versions of PIKT
more than once), PIKT has been used at many thousands of sites worldwide,
including the national space agencies of at least two different countries;
some international science research institutes; a few major European and
American financial institutions; quite a few Fortune 500 companies
(electronics, autos, energy, aerospace, defense, and others); a number of
European and American telecommunications companies; several well-known
computing firms and/or their research labs in America, Europe, and Asia; at
least one major American media company; numerous government agencies, both
here and abroad; and lots of universities from all over the world, including
many computer science departments. (Note: We will not reveal specific names,
because for security reasons it would be irresponsible for us to do so.)
Since PIKT's initial release in 1998, in the past nine years 150,000+
different network addresses have hit the PIKT website two million or more
times. (Since limited graphics images were only added to the pikt.org
website in early 2004, most of that hit figure represents a true page count.)
Well over 100,000 of those hits were software downloads. Including repeat
visits, the total visitor count numbers well into the hundreds of thousands.
(The PIKT website has moved several times over the past nine years, and
there are gaps in our logs, hence the imprecision in these figures.)
PIKT is available for independent download at a number of other websites
around the world, including at popular Open Source and Linux software
repositories. We of course have no way to monitor download traffic
elsewhere. But it's safe to say that the figures quoted above are
significant underestimates of PIKT's true hit, visitor, and download counts.
PIKT is certainly battle tested, but not invincible, as the BUGS, NEWS,
and ChangeLog files make clear.
LOOKING AHEAD
As you evaluate PIKT, remember that you can use the PIKT language as much
or as little as you like, substituting your preferred scripting language
where appropriate. To me, the really nifty thing about PIKT is not so
much its script language as it is the script preprocessor and management
facilities--macros; version control (by means of #if and
and #ifdef directives); meta commenting; centralized editing,
scheduling, installation, and process control; comprehensive error logging;
etc.
There is another important thing to bear in mind. I have made PIKT
to be as flexible as possible. By design, most of the config files are
free-form. With relaxation of the eight-config-file requirement, this
permits truncated PIKT setups using just the components you prefer or need.
The sample configurations at pikt.org represent one view, my view, of how
it all might be put together. It's not too hard envisioning macros and
objects files being done differently, or entirely different layouts and
naming conventions. By all means, do things in the way that suits you best!
By now, PIKT's outlines are pretty much settled. I don't foresee
drastic changes being made to the script language (at the surface level),
or to the config file and management systems. If PIKT changes beyond this
point, it will be by addition of new features, and by reworking of the
underlying plumbing.
There remains much to be done, especially in the areas of: simplifying setup
and configuration; graphical user interface(s); security; building a "standard
library" of scripts, macros, and data objects; better integration with other
script languages (like Perl and Python); and others. We welcome new
additions to the development team.
Will the long-awaited PIKT 2.0 ever appear? It's possible, but much will
depend on user feedback and interest, also if new developers join the
project.
Toward those ends, I invite you to join and participate in the pikt-users
mailing list
https://listhost.uchicago.edu/mailman/listinfo/pikt-users
and pikt-workers mailing list
https://listhost.uchicago.edu/mailman/listinfo/pikt-workers
Speak up! Make yourself heard!
In the months and years ahead, I will continue to use and develop PIKT to
serve my needs--administer my home and work systems (Linux machines, most
likely, but also FreeBSD, Solaris, and hopefully soon Mac OS X), and to run
my websites.
I am prepared to better serve *your* PIKT needs if I hear from you. There
is much more work to be done. (See the TODO file, or visit the web page
https://pikt.org/pikt/todo.html.) No doubt you can suggest many more features
and improvements.
Please support the PIKT Project. And let's hear from you! But most of all,
enjoy!
"Berto"
Robert Osterlund
Oak Park, Illinois, USA
September 2007