Преглед изворни кода

providing initial configuration

tags/v0.1
Arnold Bechtoldt пре 10 година
родитељ
комит
b2ae19a3b8
7 измењених фајлова са 110 додато и 2 уклоњено
  1. +5
    -0
      .gitignore
  2. +13
    -0
      LICENSE
  3. +37
    -2
      README.md
  4. +1
    -0
      VERSION
  5. +11
    -0
      network/defaults.yaml
  6. +32
    -0
      network/init.sls
  7. +11
    -0
      pillar.example.sls

+ 5
- 0
.gitignore Прегледај датотеку

@@ -0,0 +1,5 @@
pkg/
metadata.json
*.idea
*.swp
*.tmp

+ 13
- 0
LICENSE Прегледај датотеку

@@ -0,0 +1,13 @@
Copyright (c) 2014 Arnold Bechtoldt <mail@arnoldbechtoldt.com>

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

+ 37
- 2
README.md Прегледај датотеку

@@ -1,4 +1,39 @@
network-formula
===============
# network-formula

Salt Stack Formula to set up and configure a host's network configuration

## NOTICE BEFORE YOU USE

* This formula aims to follow the conventions and recommendations described at [http://docs.saltstack.com/topics/conventions/formulas.html](http://docs.saltstack.com/topics/conventions/formulas.html)

## TODO

None

## Instructions

1. Add this repository as a [GitFS](http://docs.saltstack.com/topics/tutorials/gitfs.html) backend in your Salt master config.

2. Configure your Pillar top file (`/srv/pillar/top.sls`), see pillar.example

3. Include this Formula within another Formula or simply define your needed states within the Salt top file (`/srv/salt/top.sls`).

## Available states

### network

\#TODO

## Additional resources

None

## Formula Dependencies

None

## Compatibility

*DOES* work on:

* GNU/ Linux Debian Wheezy

+ 1
- 0
VERSION Прегледај датотеку

@@ -0,0 +1 @@
0.1.0

+ 11
- 0
network/defaults.yaml Прегледај датотеку

@@ -0,0 +1,11 @@
{% load_yaml as rawmap %}
Debian:
defaults:
enabled: True
proto: dhcp
type: eth
default_interfaces:
- name: lo
proto: loopback
type: eth
{% endload %}

+ 32
- 0
network/init.sls Прегледај датотеку

@@ -0,0 +1,32 @@
{% from "network/defaults.yaml" import rawmap with context %}
{% set datamap = salt['grains.filter_by'](rawmap, merge=salt['pillar.get']('network:lookup')) %}

{% set interfaces = datamap['default_interfaces'] %}

{% if salt['pillar.get']('network:interfaces') is defined %}
{% set interfaces = interfaces + salt['pillar.get']('network:interfaces') %}
{% endif %}

{% for n in interfaces %}
network-{{ n['name'] }}:
network:
- managed
- name: {{ n['name'] }}
- enabled: {{ n['enabled']|default(datamap['defaults']['enabled']) }}
- proto: {{ n['proto']|default(datamap['defaults']['proto']) }}
- type: {{ n['type']|default(datamap['defaults']['type']) }}
{% if n['proto'] in ['static'] %}
{% if n['ipaddr'] is defined %}
- ipaddr: {{ n['ipaddr'] }}
{% endif %}
{% if n['gateway'] is defined %}
- gateway: {{ n['gateway'] }}
{% endif %}
{% if n['netmask'] is defined %}
- netmask: {{ n['netmask'] }}
{% endif %}
{% if n['broadcast'] is defined %}
- broadcast: {{ n['broadcast'] }}
{% endif %}
{% endif %}
{% endfor %}

+ 11
- 0
pillar.example.sls Прегледај датотеку

@@ -0,0 +1,11 @@
network:
interfaces:
- name: eth0
proto: dhcp
type: eth
- name: eth1
proto: static
ipaddr: 192.168.2.31
netmask: 255.255.255.0
gateway: 192.168.2.1
- name: eth2

Loading…
Откажи
Сачувај