From 91061f07fe3d7a10f584632f1d9721a0fa0d3487 Mon Sep 17 00:00:00 2001 From: Youngjin Han Date: Fri, 15 May 2020 21:13:35 +0900 Subject: [PATCH] Learning Circle : cdist #3 - update __my_dotfile --- youngjin.han/dot-cdist/manifest/init | 5 +- .../type/__colourful_file/file/colourful | 9 -- .../dot-cdist/type/__colourful_file/manifest | 12 +- .../parameter/{optional => optional_multiple} | 0 .../type/__my_dotfiles/files/.bashrc | 115 ++++++++++++++++++ .../type/__my_dotfiles/files/.profile | 24 ++++ .../dot-cdist/type/__my_dotfiles/manifest | 10 ++ .../dot-cdist/type/__my_dotfiles/singleton | 0 .../dot-cdist/type/__my_nginx_site/manifest | 4 +- youngjin.han/learning-node02-2020.org | 24 ++-- 10 files changed, 176 insertions(+), 27 deletions(-) delete mode 100644 youngjin.han/dot-cdist/type/__colourful_file/file/colourful rename youngjin.han/dot-cdist/type/__colourful_file/parameter/{optional => optional_multiple} (100%) create mode 100644 youngjin.han/dot-cdist/type/__my_dotfiles/files/.bashrc create mode 100644 youngjin.han/dot-cdist/type/__my_dotfiles/files/.profile create mode 100755 youngjin.han/dot-cdist/type/__my_dotfiles/manifest create mode 100644 youngjin.han/dot-cdist/type/__my_dotfiles/singleton diff --git a/youngjin.han/dot-cdist/manifest/init b/youngjin.han/dot-cdist/manifest/init index 5d18418..48e4995 100644 --- a/youngjin.han/dot-cdist/manifest/init +++ b/youngjin.han/dot-cdist/manifest/init @@ -5,8 +5,9 @@ case "$__target_host" in __motd __timezone Asia/Seoul # __my_computer -# __colourful_file --colour yellow - __my_nginx_site $__target_host +# __colourful_file --colour yellow --colour blue --colour red --colour green +# __my_dotfiles +# __my_nginx_site $__target_host ;; jafo.laptop) __motd diff --git a/youngjin.han/dot-cdist/type/__colourful_file/file/colourful b/youngjin.han/dot-cdist/type/__colourful_file/file/colourful deleted file mode 100644 index 79fda42..0000000 --- a/youngjin.han/dot-cdist/type/__colourful_file/file/colourful +++ /dev/null @@ -1,9 +0,0 @@ -colour=\ -yellow\ -black\ -white\ -grey\ -puple\ -green\ -red\ -blue \ No newline at end of file diff --git a/youngjin.han/dot-cdist/type/__colourful_file/manifest b/youngjin.han/dot-cdist/type/__colourful_file/manifest index 7248b48..493b7d1 100755 --- a/youngjin.han/dot-cdist/type/__colourful_file/manifest +++ b/youngjin.han/dot-cdist/type/__colourful_file/manifest @@ -1,14 +1,14 @@ #!/bin/sh -e __file ~/colourful -printf "colour=" > ~/colourful +printf "colour=\n" > ~/colourful # parameter with multiple values if [ -f "$__object/parameter/colour" ]; then - colour="$(cat "$__object/parameter/colour")" - echo $colour >> ~/colourful -# for alias in $(cat "$__object/parameter/colour"); do -# echo $alias >> ~/colourful -# done +# colour="$(cat "$__object/parameter/colour")" +# printf "$colour\n" >> ~/colourful + for alias in $(cat "$__object/parameter/colour"); do + printf "$alias\n" >> ~/colourful + done fi diff --git a/youngjin.han/dot-cdist/type/__colourful_file/parameter/optional b/youngjin.han/dot-cdist/type/__colourful_file/parameter/optional_multiple similarity index 100% rename from youngjin.han/dot-cdist/type/__colourful_file/parameter/optional rename to youngjin.han/dot-cdist/type/__colourful_file/parameter/optional_multiple diff --git a/youngjin.han/dot-cdist/type/__my_dotfiles/files/.bashrc b/youngjin.han/dot-cdist/type/__my_dotfiles/files/.bashrc new file mode 100644 index 0000000..2a25145 --- /dev/null +++ b/youngjin.han/dot-cdist/type/__my_dotfiles/files/.bashrc @@ -0,0 +1,115 @@ +# ~/.bashrc: executed by bash(1) for non-login shells. +# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc) +# for examples + +# If not running interactively, don't do anything +case $- in + *i*) ;; + *) return;; +esac + +# don't put duplicate lines or lines starting with space in the history. +# See bash(1) for more options +HISTCONTROL=ignoreboth + +# append to the history file, don't overwrite it +shopt -s histappend + +# for setting history length see HISTSIZE and HISTFILESIZE in bash(1) +HISTSIZE=1000 +HISTFILESIZE=2000 + +# check the window size after each command and, if necessary, +# update the values of LINES and COLUMNS. +shopt -s checkwinsize + +# If set, the pattern "**" used in a pathname expansion context will +# match all files and zero or more directories and subdirectories. +#shopt -s globstar + +# make less more friendly for non-text input files, see lesspipe(1) +#[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)" + +# set variable identifying the chroot you work in (used in the prompt below) +if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then + debian_chroot=$(cat /etc/debian_chroot) +fi + +# set a fancy prompt (non-color, unless we know we "want" color) +case "$TERM" in + xterm-color|*-256color) color_prompt=yes;; +esac + +# uncomment for a colored prompt, if the terminal has the capability; turned +# off by default to not distract the user: the focus in a terminal window +# should be on the output of commands, not on the prompt +#force_color_prompt=yes + +if [ -n "$force_color_prompt" ]; then + if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then + # We have color support; assume it's compliant with Ecma-48 + # (ISO/IEC-6429). (Lack of such support is extremely rare, and such + # a case would tend to support setf rather than setaf.) + color_prompt=yes + else + color_prompt= + fi +fi + +if [ "$color_prompt" = yes ]; then + PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ ' +else + PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ ' +fi +unset color_prompt force_color_prompt + +# If this is an xterm set the title to user@host:dir +case "$TERM" in +xterm*|rxvt*) + PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1" + ;; +*) + ;; +esac + +# enable color support of ls and also add handy aliases +if [ -x /usr/bin/dircolors ]; then + test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)" + alias ls='ls --color=auto' + alias dir='dir --color=auto' + alias vdir='vdir --color=auto' + + alias grep='grep --color=auto' + alias fgrep='fgrep --color=auto' + alias egrep='egrep --color=auto' +fi + +# colored GCC warnings and errors +#export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01' + +export TERM=xterm-256color + +# some more ls aliases +alias ll='ls -alF' +alias la='ls -A' +alias l='ls -CF' + +# Alias definitions. +# You may want to put all your additions into a separate file like +# ~/.bash_aliases, instead of adding them here directly. +# See /usr/share/doc/bash-doc/examples in the bash-doc package. + +if [ -f ~/.bash_aliases ]; then + . ~/.bash_aliases +fi + +# enable programmable completion features (you don't need to enable +# this, if it's already enabled in /etc/bash.bashrc and /etc/profile +# sources /etc/bash.bashrc). +if ! shopt -oq posix; then + if [ -f /usr/share/bash-completion/bash_completion ]; then + . /usr/share/bash-completion/bash_completion + elif [ -f /etc/bash_completion ]; then + . /etc/bash_completion + fi +fi diff --git a/youngjin.han/dot-cdist/type/__my_dotfiles/files/.profile b/youngjin.han/dot-cdist/type/__my_dotfiles/files/.profile new file mode 100644 index 0000000..6a098ff --- /dev/null +++ b/youngjin.han/dot-cdist/type/__my_dotfiles/files/.profile @@ -0,0 +1,24 @@ +# ~/.profile: executed by the command interpreter for login shells. +# This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login +# exists. +# see /usr/share/doc/bash/examples/startup-files for examples. +# the files are located in the bash-doc package. + +# the default umask is set in /etc/profile; for setting the umask +# for ssh logins, install and configure the libpam-umask package. +#umask 022 + +# if running bash +if [ -n "$BASH_VERSION" ]; then + # include .bashrc if it exists + if [ -f "$HOME/.bashrc" ]; then + . "$HOME/.bashrc" + fi +fi + +# set PATH so it includes user's private bin if it exists +if [ -d "$HOME/bin" ] ; then + PATH="$HOME/bin:$PATH" +fi + +export PATH=$PATH:/sbin:/usr/sbin diff --git a/youngjin.han/dot-cdist/type/__my_dotfiles/manifest b/youngjin.han/dot-cdist/type/__my_dotfiles/manifest new file mode 100755 index 0000000..b3de322 --- /dev/null +++ b/youngjin.han/dot-cdist/type/__my_dotfiles/manifest @@ -0,0 +1,10 @@ +#!/bin/sh -e + +cd "$__type/files/" +dotfiles=$(ls -a .[A-z]*) + +for df in $dotfiles; do + __file ~/$df \ + --mode 0644 --source "$__type/files/$df" +done + diff --git a/youngjin.han/dot-cdist/type/__my_dotfiles/singleton b/youngjin.han/dot-cdist/type/__my_dotfiles/singleton new file mode 100644 index 0000000..e69de29 diff --git a/youngjin.han/dot-cdist/type/__my_nginx_site/manifest b/youngjin.han/dot-cdist/type/__my_nginx_site/manifest index 1e08e8b..d0330fc 100755 --- a/youngjin.han/dot-cdist/type/__my_nginx_site/manifest +++ b/youngjin.han/dot-cdist/type/__my_nginx_site/manifest @@ -16,11 +16,11 @@ nginx_config_dir="/etc/nginx/conf.d" domain="$__object_id" __directory /var/www/html/$domain \ - --parents --mode 0644 + --parents --mode 0755 require="__directory//var/www/html/$domain" \ __file /var/www/html/$domain/index.html \ - --source - --mode 0644 << EOF + --mode 0644 --source - << EOF Hello Cdist!!! EOF diff --git a/youngjin.han/learning-node02-2020.org b/youngjin.han/learning-node02-2020.org index 88b148b..2034589 100644 --- a/youngjin.han/learning-node02-2020.org +++ b/youngjin.han/learning-node02-2020.org @@ -89,26 +89,33 @@ - The *server name* should be set to the specified domain - The *root* directive should point to /var/www/html/DOMAIN - (replace DOMAIN with the actual domain) -***** Use both types in the initial manifest to configure the target host +***** DONE Use both types in the initial manifest to configure the target host + CLOSED: [2020-05-15 금 21:07] - Create at least two domains -***** Configure the target host +***** DONE Configure the target host + CLOSED: [2020-05-15 금 21:08] - Verify that the configuration files are properly created -***** Delete the nginx package manually on the target host -***** Comment out *__my_nginx* from the initial manifest, keep the *__my_nginx_site* +***** DONE Delete the nginx package manually on the target host + CLOSED: [2020-05-15 금 21:08] +***** DONE Comment out *__my_nginx* from the initial manifest, keep the *__my_nginx_site* + CLOSED: [2020-05-15 금 21:08] - Explain the error that you get (in your cdist.org file) * 2020-05-08 *** cdist #3: type parameters **** Lecture content -***** TODO Create a new type named *__colourful_file* +***** DONE Create a new type named *__colourful_file* + CLOSED: [2020-05-15 금 20:29] - The objective is to create a type that creates colourful file - The content of the file should be "colour=...", where "..." is a colour specified by a parameter - Add an *optional parameter* named *colour* - Use the **__file** type inside your type to create a file - Use the *$__object_id* variable inside your type -***** TODO Extend your type to be more colourful +***** DONE Extend your type to be more colourful + CLOSED: [2020-05-15 금 20:29] - Modify the *optional parameter* to be able to be specified *multiple times* - For each time it is specified, add a line "colour=..." to the file -***** TODO Create a new type *__my_dotfiles* +***** DONE Create a new type *__my_dotfiles* + CLOSED: [2020-05-15 금 21:07] - Objective is to manage the dotfiles in your home directory - Make it a *singleton* type - Create a sub directory *files* in the type @@ -116,7 +123,8 @@ - Add a *for* loop to your type to deploy .[A-z]* to your home directory - Add a .bashrc or .zshrc to the files folder (depending on your shell) - In the initial manifest, add __my_dotfiles when the target host is localhost -***** TODO As usual commit all changes to your ungleich-learning-circle repo +***** DONE As usual commit all changes to your ungleich-learning-circle repo + CLOSED: [2020-05-15 금 21:07] * 2020-05-06 ** cdist #2: Your first cdist type **** Lecture content