propellor-4.3.1: property-based host configuration management in haskell

Safe HaskellNone
LanguageHaskell98

Propellor.Info

Synopsis

Documentation

osDebian :: DebianSuite -> Architecture -> Property (HasInfo + Debian) Source #

Specifies that a host's operating system is Debian, and further indicates the suite and architecture.

This provides info for other Properties, so they can act conditionally on the details of the OS.

It also lets the type checker know that all the properties of the host must support Debian.

	& osDebian (Stable "stretch") X86_64

osBuntish :: Release -> Architecture -> Property (HasInfo + Buntish) Source #

Specifies that a host's operating system is a well-known Debian derivative founded by a space tourist.

(The actual name of this distribution is not used in Propellor per http://joeyh.name/blog/entry/trademark_nonsense/)

osArchLinux :: Architecture -> Property (HasInfo + ArchLinux) Source #

Specifies that a host's operating system is Arch Linux

osFreeBSD :: FreeBSDRelease -> Architecture -> Property (HasInfo + FreeBSD) Source #

Specifies that a host's operating system is FreeBSD and further indicates the release and architecture.

setInfoProperty :: (MetaTypes metatypes' ~ (+) HasInfo metatypes, SingI metatypes') => Property metatypes -> Info -> Property (MetaTypes metatypes') Source #

Adds info to a Property.

The new Property will include HasInfo in its metatypes.

addInfoProperty :: IncludesInfo metatypes ~ True => Property metatypes -> Info -> Property metatypes Source #

Adds more info to a Property that already HasInfo.

pureInfoProperty :: IsInfo v => Desc -> v -> Property (HasInfo + UnixLike) Source #

Makes a property that does nothing but set some Info.

askInfo :: IsInfo v => Propellor v Source #

Gets a value from the host's Info.

ipv4 :: String -> Property (HasInfo + UnixLike) Source #

Indicate that a host has an A record in the DNS.

When propellor is used to deploy a DNS server for a domain, the hosts in the domain are found by looking for these and similar properites.

When propellor --spin is used to deploy a host, it checks if the host's IP Property matches the DNS. If the DNS is missing or out of date, the host will instead be contacted directly by IP address.

ipv6 :: String -> Property (HasInfo + UnixLike) Source #

Indicate that a host has an AAAA record in the DNS.

alias :: Domain -> Property (HasInfo + UnixLike) Source #

Indicates another name for the host in the DNS.

When the host's ipv4/ipv6 addresses are known, the alias is set up to use their address, rather than using a CNAME. This avoids various problems with CNAMEs, and also means that when multiple hosts have the same alias, a DNS round-robin is automatically set up.