# Typy konfiguračních souborů

# Popis

  • Konfigurují nastavení a prostředí programu

# Formát: XML

  • Zkratka eXtensible Markup Language
  • Podobá se HTML (mnohem flexibilnější)
  • Definice pomocí vlastních tagů
  • Komentáře se uzavírají pomocí <!-- Some comment -->
  • Další využití: RSS, XHR, WAP

Ukázka

<modelVersion>4.0.0</modelVersion>
<groupId>org.apache.guacamole</groupId>
<artifactId>guacamole-client</artifactId>
<packaging>pom</packaging>
<version>1.0.0</version>
<name>guacamole-client</name>
<url>http://guacamole.apache.org/</url>

<!-- Some comment -->

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>

# Formát: YAML

  • Rekursivní zkratka YAML Ain't Markup Language
  • Pro strukturování se používá odsazení 2 nebo 4 mezerami (tabulátory nejsou povoleny)
  • Komentáře začínají znakem #
  • Začátek dokumentu se značí --
  • Využití: Kubernetes, Ansible, Gitlab CI, Docker Compose
---
- name: kotlilplaybook
  hosts: optiplex

  tasks:
    # Create folder
    - name: create folder
      file:
        state: directory
        path: '/tmp/optiplex'

# Formát: JSON

  • Zkratka JavaScript Object Notation
  • Formát pro výměnu dat
  • Založený na JavaScriptu
  • Kolekce párů klíč-hodnota
  • Komentáře nejsou povoleny
{
  "name": "gatsby-starter-default",
  "description": "Gatsby default starter",
  "version": "1.0.0",
  "author": "Kyle Mathews <mathews.kyle@gmail.com>",
  "dependencies": {
    "a": "^2.1.2",
    "babel-plugin-styled-components": "^1.5.1",
    "browser-lang": "^0.0.1",
    "gatsby": "next",
    "gatsby-plugin-react-helmet": "next",
    "gatsby-plugin-styled-components": "^3.0.0-beta.3",
    "gatsby-plugin-typography": "^1.7.18",
    "intl": "^1.2.5",
    "react": "^16.4.1",
    "react-dom": "^16.4.1",
    "react-helmet": "^5.2.0",
    "react-intl": "^2.4.0",
    "react-particles-js": "^2.3.0",
    "react-scrollable-anchor": "^0.6.1",
    "styled-components": "^3.3.3",
    "typed.js": "^2.0.9",
    "typography-theme-moraga": "^0.15.10"
  }
}

# Formát: CONF

  • Systémové konfigurační souboru v unixových systémech (Linux, BSD, macOS)
  • Data ukládany ve stylu klíč-hodnota
  • Formát se může lišit (záleží na implementaci)
  • Hodnota může obsahovat mezery
  • Komentáře začínají znakem # nebo //
# This file is automatically generated.

nameserver 8.8.8.8
nameserver 8.8.4.4

# Formát: INI

  • Znamená INItialization
  • Převážně u Windowsu
  • Data ukládany ve stylu klíč-hodnota
  • Komentáře začínají středníkem
  • Mimo jiné využívá PHP (php.ini)
[database]
; use IP address in case network name resolution is not working
server=192.0.2.62
port=143
file="payroll.dat"

# Formát: Unit file

  • Unit konfigurce pro Systemd
  • Formát podobný ini souborům
  • Popisuje chování dané jednotky (třeba služby)
  • Komentáře nejsou povoleny
  • Více info: https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/system_administrators_guide/sect-managing_services_with_systemd-unit_files
[Unit]
Description=Some testing service

[Service]
ExecStart=/usr/local/bin/muj-script.sh

[Install]
WantedBy=multi-user.target

# Formát: Hosts File

  • Lokální DNS záznamy
  • Mapuje název hostitele na IP adresu
  • Komentáře začínají znakem #
# Host Database
127.0.0.1       localhost
255.255.255.255 broadcasthost
::1             localhost
fe80::1%lo0     localhost

172.20.24.103  neco.local

# Formát: Properties

  • Používájí především Java aplikace k nastavení konfigurovatelných parametrů
  • Můžou být mezery
  • Data ukládany ve stylu klíč-hodnota
  • Komentáře začínají znakem # nebo !
website = https://en.wikipedia.org/
language = English
# The backslash below tells the application to continue reading
# the value onto the next line.
message = Welcome to \
          Wikipedia!
# Add spaces to the key
key\ with\ spaces = This is the value that could be looked up with the key "key with spaces".
# Unicode
tab : \u0009