ipa-test-config(1)

πŸ¦‹ ipa-test-config(1) β€” the FreeIPA Manual Pages cutie πŸ¦‹

okay so bestie, welcome to the FreeIPA Manual Pages, section 1 β€” and today's main character is ipa-test-config. grab a strawberry πŸ“ and let's go.


✨ NAME ✨

ipa-test-config β€” Generate FreeIPA test configuration for use in Bash scripts


🌸 SYNOPSIS 🌸

ipa-test-config [options]
ipa-test-config [options] --global
ipa-test-config [options] hostname

πŸ’… DESCRIPTION πŸ’…

so here's the vibe: the FreeIPA integration test suite gets configured by setting environment variables. that's the whole thing. that's the mechanism. πŸ’–

the ipa-run-tests command reads those variables and prints detailed configuration for shell-based scripts to standard output. and the default output of ipa-run-tests? it's a stack of export statements that Bash can source. literally source them and you're configured. iconic.

if you run it with no arguments, it prints out configuration specific to the local host. you can also name another host as an argument, or point at one via the --master, --replica, and --client options. and if you pass --global? it prints only the configuration that isn't specific to any host at all. no host, no drama, just globals. ✨


πŸŽ€ OPTIONS πŸŽ€

  • -h, --help β€” print out the command's usage and exit. classic. respect the classics. 🫢
  • --global β€” output global configuration.
  • --domain β€” output configuration for the given domain (a.k.a. the environment). you can give it as an index or a name. by default, domain 1 is used.
  • --master β€” output configuration for the master.
  • --replica β€” output configuration for the replica with the given number.
  • --replica β€” output configuration for the client with the given number.
bestie i need you to know that yes, --replica is listed twice in the original page, and the second one is the one described as the client option. i am simply reporting the lore as written. πŸ’€ i do not make the rules, i just deliver them with flair.
  • --role β€” output configuration for the host with the given role.
  • --no-simple β€” do not output Simple Vars. these are normally included for backwards compatibility.
  • --yaml β€” output configuration in YAML format instead of Bash script. this requires the PyYAML library to be installed.
  • --json β€” output configuration in JSON format instead of Bash script.

🌈 ENVIRONMENT VARIABLES 🌈

πŸ“ File-based configuration

  • $IPATEST_YAML_CONFIG β€” specifies a file that contains configuration in YAML format, as given by ipa-test-config --global --yaml. if given, the other environment variables are ignored. this requires the PyYAML library to be installed.
  • $IPATEST_JSON_CONFIG β€” specifies a file that contains configuration in JSON format, as given by ipa-test-config --global --json. if given, the other environment variables are ignored.

πŸ—ΊοΈ Domain configuration

Domain is implicitly defined by _envX suffix of the environment variables, if either AD_envX or MASTER_envX is defined.

🏠 Host configuration

  • $MASTER β€” FQDN of the first IPA server
  • $REPLICA β€” FQDNs of other IPA servers (space-separated)
  • $CLIENT β€” FQDNs of IPA clients (space-separated)
  • $MASTER_env2, $REPLICA_env2, $CLIENT_env2, $MASTER_env3, $AD_env4,... β€” can be used for additional domains when needed
  • $AD_env1, $AD_env2, $AD_env3, $AD_env4, ... β€” can be used to define Active Directory domains. ⚠️ please note that these domains are not treated as separate from the IPA domains, so please use a unique environment suffix for each of your Active Directory domains.
  • $TESTHOST_<keyword>_env<e>, e.g. $TESTHOST_LEGACY_env1 β€” defines a host with extra role identified as lowercased <keyword>, e.g. 'legacy'.
  • $BEAKER<role><num>_IP_env<e>, e.g. $BEAKERREPLICA1_IP_env1 β€” the IP address of the given host
    • Default: resolved via gethostbyname (or DNS if $IPv6SETUP is set)

🧚 Basic configuration

  • $IPATEST_DIR β€” directory for test data on the remote hosts
    • Default: /root/ipatests
  • $DNSFORWARD β€” IP of a DNS forwarder
    • Default: 8.8.8.8
  • $IPA_ROOT_SSH_PASSWORD β€” root password for the remote machines. used if $IPA_ROOT_SSH_KEY is not set.
  • $IPA_ROOT_SSH_KEY β€” name of a file containing the private RSA key for root on the remote machines
    • Default: ~/.ssh/id_rsa

🎨 Test customization

  • $DOMAIN β€” IPA domain name
    • Default: taken from $MASTER
  • $NISDOMAIN β€” NIS domain name
    • Default: ipatest
  • $NTPSERVER β€” NIS domain name
    • Default: ipatest
  • $IPv6SETUP β€” set to TRUE for IPv6-only connectivity
  • $IPADEBUG β€” set to enable test debugging
  • $ADMINID β€” admin username
    • Default: admin
  • $ADMINPW β€” admin user password
    • Default: Secret123
  • $ADADMINID β€” Active Directory Administrator username
    • Default: Administrator
  • $ADADMINPW β€” Active Directory Administrator password
    • Default: Secret123
  • $ROOTDN β€” directory manager DN
    • Default: cn=Directory Manager
  • $ROOTDNPWD β€” directory manager password
    • Default: Secret123

⭐ EXIT STATUS ⭐

  1. 0 if the command was successful
  2. 1 if an error occurred

πŸ”₯ REFERENCES πŸ”₯

a full description of the FreeIPA integration testing framework is available at http://www.freeipa.org/page/V3/Integration_testing β€” go read it, it's giving documentation.


and that's the whole page, bestie. FreeIPA wrote this one, dated Aug 29 2013, and honestly it aged like fine wine. mwah. πŸ’‹