Merge remote-tracking branch 'sami/master'
This commit is contained in:
commit
91888a558f
18 changed files with 204 additions and 1 deletions
21
sami/.gitignore
vendored
Normal file
21
sami/.gitignore
vendored
Normal file
|
@ -0,0 +1,21 @@
|
|||
|
||||
# Created by https://www.gitignore.io/api/linux
|
||||
# Edit at https://www.gitignore.io/?templates=linux
|
||||
|
||||
### Linux ###
|
||||
*~
|
||||
|
||||
# temporary files which can be created if a process still has a handle open of a deleted file
|
||||
.fuse_hidden*
|
||||
|
||||
# KDE directory preferences
|
||||
.directory
|
||||
|
||||
# Linux trash folder which might appear on any partition or disk
|
||||
.Trash-*
|
||||
|
||||
# .nfs files are created when an open file is removed but is still being accessed
|
||||
.nfs*
|
||||
|
||||
# End of https://www.gitignore.io/api/linux
|
||||
|
1
sami/my-cdist/.cdist/files/motd
Normal file
1
sami/my-cdist/.cdist/files/motd
Normal file
|
@ -0,0 +1 @@
|
|||
my message of the day
|
|
@ -0,0 +1,15 @@
|
|||
case "$__target_host" in
|
||||
localhost)
|
||||
#target is configured with cdist
|
||||
__file /etc/cdist-configured
|
||||
|
||||
# motd from th file directory
|
||||
__motd --source "$__files/motd"
|
||||
|
||||
__timezone Europe/Zurich
|
||||
|
||||
# types to be used
|
||||
__my_computer
|
||||
;;
|
||||
esac
|
||||
|
30
sami/my-cdist/.cdist/type/__all_in_one/manifest
Normal file
30
sami/my-cdist/.cdist/type/__all_in_one/manifest
Normal file
|
@ -0,0 +1,30 @@
|
|||
os="$(cat "$__global/explorer/os")"
|
||||
case "$os" in
|
||||
fedora)
|
||||
__package nmap-ncat --state present
|
||||
__package wireshark-cli --state present
|
||||
|
||||
;;
|
||||
debian)
|
||||
|
||||
__package netcat --state present
|
||||
__package tshark --state present
|
||||
|
||||
|
||||
alpine)
|
||||
|
||||
__package netcat-openbsd --state present
|
||||
__package tshark --state present
|
||||
;;
|
||||
|
||||
|
||||
*)
|
||||
echo "Don't know how to manage packages on: $os" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
|
||||
__package socat --state present __package sipcalc --state present __package sudo --state present
|
||||
|
||||
|
1
sami/my-cdist/.cdist/type/__all_in_one/parameter/boolean
Normal file
1
sami/my-cdist/.cdist/type/__all_in_one/parameter/boolean
Normal file
|
@ -0,0 +1 @@
|
|||
--with-x
|
0
sami/my-cdist/.cdist/type/__all_in_one/singleton
Normal file
0
sami/my-cdist/.cdist/type/__all_in_one/singleton
Normal file
24
sami/my-cdist/.cdist/type/__colorful_file/manifest
Normal file
24
sami/my-cdist/.cdist/type/__colorful_file/manifest
Normal file
|
@ -0,0 +1,24 @@
|
|||
# required parameter
|
||||
#servername="$(cat "$__object/parameter/servername")"
|
||||
|
||||
# optional parameter
|
||||
if [ -f "$__object/parameter/optional" ]; then
|
||||
logdirectory="$(cat "$__object/parameter/optional")"
|
||||
fi
|
||||
|
||||
# optional parameter with predefined default
|
||||
#loglevel="$(cat "$__object/parameter/loglevel")"
|
||||
|
||||
# boolean parameter
|
||||
#if [ -f "$__object/parameter/use_ssl" ]; then
|
||||
# file exists -> True
|
||||
# do some fancy ssl stuff
|
||||
#fi
|
||||
|
||||
# parameter with multiple values
|
||||
#if [ -f "$__object/parameter/server_colorful" ]; then
|
||||
# for alias in $(cat "$__object/parameter/server_alias"); do
|
||||
# echo $alias > /some/where/useful
|
||||
#done
|
||||
#fi
|
||||
|
|
@ -0,0 +1 @@
|
|||
colorful
|
|
@ -19,7 +19,15 @@
|
|||
#
|
||||
#
|
||||
# Ensure sipcalc is present
|
||||
#
|
||||
|
||||
|
||||
__package sipcalc --state present
|
||||
|
||||
__package emacs --state present
|
||||
|
||||
__package firefox --state present
|
||||
|
||||
__package nmap --state present
|
||||
|
||||
__package zsh --state present
|
||||
|
||||
|
|
|
@ -0,0 +1,9 @@
|
|||
if [ -f "$__object/parameter/name" ]; then
|
||||
name="$(cat "$__object/parameter/name")"
|
||||
else
|
||||
name="$__object_id"
|
||||
fi
|
||||
|
||||
# Expect dpkg failing, if package is not known / installed
|
||||
dpkg -s "$name" 2>/dev/null || exit 0
|
||||
|
0
sami/my-cdist/.cdist/type/__my_firewall/manifest
Normal file
0
sami/my-cdist/.cdist/type/__my_firewall/manifest
Normal file
|
@ -0,0 +1 @@
|
|||
file
|
0
sami/my-org-files/.git.ignore
Normal file
0
sami/my-org-files/.git.ignore
Normal file
38
sami/my-org-files/cdist.org/cdist#1-intro.org
Normal file
38
sami/my-org-files/cdist.org/cdist#1-intro.org
Normal file
|
@ -0,0 +1,38 @@
|
|||
*** cdist #1: Introduction
|
||||
**** Lecture content
|
||||
***** Objective
|
||||
****** Begin to use cdist
|
||||
***** Steps
|
||||
****** Install cdist locally https://www.cdi.st/manual/latest/cdist-quickstart.html
|
||||
****** Create a new cdist configuration directory in ~/ungleich-learning-circle/USERNAME/dot-cdist
|
||||
****** Create an empty initial manifest
|
||||
****** Commit that status
|
||||
****** Ensure that you can login as root to localhost via ssh without a password
|
||||
****** Configure cdist to configures the motd of your localhost
|
||||
******* Ensure you have a case block matching on $__target_host
|
||||
******* Use the -c parameter to cdist to specify the configuration directory
|
||||
******* Use the -vv parameter to get more verbose output
|
||||
****** Configure cdist to create the file /etc/cdist-configured
|
||||
****** Configure cdist to setup the timezone on your local computer
|
||||
****** Configure cdist to ensure emacs is installed
|
||||
****** Ensure that in the end all changes are committed in your repository
|
||||
|
||||
* init.file
|
||||
- sami@cdist/manifest$ cat init
|
||||
case "$__target_host" in
|
||||
localhost)
|
||||
#target is configured with cdist
|
||||
__file /etc/cdist-configured
|
||||
|
||||
# motd from th file directory
|
||||
__motd --source "$__files/motd"
|
||||
|
||||
__timezone Europe/Zurich
|
||||
|
||||
|
||||
;;
|
||||
esac
|
||||
|
||||
|
||||
* Types manifest for installing packages or insuring that packages are installed
|
||||
- __package emacs --state present
|
24
sami/my-org-files/cdist.org/cdist#2-type.org
Normal file
24
sami/my-org-files/cdist.org/cdist#2-type.org
Normal file
|
@ -0,0 +1,24 @@
|
|||
*** cdist #2: Your first cdist type
|
||||
**** Lecture content
|
||||
***** Objective
|
||||
****** Begin to understand how cdist types function
|
||||
******* Types are the main component of cdist and define functionality. If you use cdist, you'll write a type for every functionality you would like to use.
|
||||
***** Steps
|
||||
****** Create a new type named `__my_computer`
|
||||
- Mark the type as a singleton type (If a type is flagged as a singleton, it may be used only once per host.)
|
||||
- Create a `manifest` file in it
|
||||
- Use this type to install the following packages: zsh, mosh, emacs, nmap, sipcalc
|
||||
- Edit the *initial manifest* and use **__my_computer** - Here we have to simply add __my_computer in the types file
|
||||
**localhost**
|
||||
- Match using the $__target_host variable
|
||||
****** Modify your type to use a *for loop* to install the packages
|
||||
****** Deploy / manage your ~/.emacs file in this type
|
||||
- Ensure that permissions and ownership are correct
|
||||
****** Use different *verbosity* levels when configuring
|
||||
****** Ensure that all your changes are committed and pushed in your ungleich-learning-circle repository
|
||||
- Use magit inside emacs for that
|
||||
***** Documentation steps to be done in cdist.org
|
||||
- Create a new org document named `cdist.org` in the safind . -name "~/.emacs"me folder as the learning.org file
|
||||
- Explain the difference between a singleton and non-singleton type
|
||||
- Explain the difference between the different verbosity levels
|
||||
- Document (copy&paste) some of the cdist runs in a "log" section```find . -name "~/.emacs"
|
15
sami/my-org-files/cdist.org/cdist#5-messsaging
Normal file
15
sami/my-org-files/cdist.org/cdist#5-messsaging
Normal file
|
@ -0,0 +1,15 @@
|
|||
cdist #5: Generating Code & Exploring
|
||||
|
||||
* Understanding how to generate code and when to use it
|
||||
** define gencode-remote script: ~/.cdist/type/__nginx_site. After manifest is applied it should restart services so configuration is active. Our gencode-remote looks like echo "service nginx restart"
|
||||
|
||||
* Modify the previously created type *__my_nginx_site*
|
||||
** We modify the previously created type so that the gencode-remote script reacts accordingly
|
||||
- echo "if_configurationfile_changes" >> "$__messages_out"
|
||||
|
||||
* Read about cdist messaging
|
||||
** cdist has a simple but powerful way of allowing communication between the initial manifest and types as well as types and types.
|
||||
* What is the difference between gencode-local and gencode-remote?
|
||||
|
||||
** gencode-remote used to generate code to be executed on the target host
|
||||
** gencode-local used to generate code to be executed on the source host
|
15
sami/my-org-files/cdist.org/cdist.org
Normal file
15
sami/my-org-files/cdist.org/cdist.org
Normal file
|
@ -0,0 +1,15 @@
|
|||
* cdist #5: Generating Code & Exploring
|
||||
|
||||
* Understanding how to generate code and when to use it
|
||||
** define gencode-remote script: ~/.cdist/type/__nginx_site. After manifest is applied it should restart services so configuration is active. Our gencode-remote looks like echo "service nginx restart"
|
||||
|
||||
* Modify the previously created type *__my_nginx_site*
|
||||
** We modify the previously created type so that the gencode-remote script reacts accordingly
|
||||
- echo "if_configurationfile_changes" >> "$__messages_out"
|
||||
|
||||
* Read about cdist messaging
|
||||
** cdist has a simple but powerful way of allowing communication between the initial manifest and types as well as types and types.
|
||||
* What is the difference between gencode-local and gencode-remote?
|
||||
|
||||
** gencode-remote used to generate code to be executed on the target host
|
||||
** gencode-local used to generate code to be executed on the source host
|
Loading…
Reference in a new issue