ign-tool icon indicating copy to clipboard operation
ign-tool copied to clipboard

FCOS Ignition Tool (beta)

Software License Build Status GitHub issues

IGN - Tools for working with fcct/ignition

asciicast

Ign provides a working environment for building an ignition provisioning script from the command line.

Find your SSH public keys

#> ign ssh --find
found:
  A)  ssh-ed25519 AAAAC3N...9a5kCpbT [email protected]
  B)      ssh-rsa AAAAB3N...fzh3oUGZ [email protected]

Provisioning a user in one line with the above keys and also direct password entry:

#> ign user bob --add ssh+=A,B uid=2000 primary_group=mortals groups+=sudo shell=/usr/local/bin/layer-shell --password
#> Password: <enter password>

Generating the ignition.json to the designated target (configured in ign.conf)

ign generate --confirm

Getting Started

Clone [ign-tool](https://github.com/keithy/ign-tool), ign includes a setup utility command self-install that links it to somewhere on your path.

./ign-tool/ign setup self-install ~/bin --link --confirm

To create a new project, ign includes a handy template working directory (like rust cargo etc.)

ign setup new 
ign setup new my.ign --starter --confirm
cd my.ign
nano ign.conf

The local configuration file ign.conf is applied to all commands when running ign within this working directory. The ign command edits a workspace of yaml snippets in my.ign/inputs which are merged together and output by ign generate --yaml

The ignition snippets library - spark-"plugs"

A library of useful snippets is published on the repo wiki

dependencies:

built in dependency installer

ign setup dependencies --confirm
  • bash >= 4.4
  • [yq](https://github.com/mikefarah/yq/releases) # yaml query tool
  • [fcct](https://github.com/coreos/fcct/releases) # Fedora Configuration Transpiler
  • sudo pip3 install passlib # for generating user/group password hash
  • sudo yum install expect # (TESTING ONLY) password interaction

issues

  • https://gitlab.com/keithy/ign-tool
  • ignition features not supported by the tool (plugs can still add them)
    • systemd dropins
    • files append

groan

ign is assembled using groan, the groan framework is a basis for composing hierarchical CLI interfaces with bash and other languages.

  • http://github.com/keithy/groan