diff --git a/roles/debian/defaults/main.yaml b/roles/debian/defaults/main.yaml index a861f1c..a750a38 100644 --- a/roles/debian/defaults/main.yaml +++ b/roles/debian/defaults/main.yaml @@ -1,3 +1,4 @@ +vn_env: lab vn_first_time: false vn_witness_checked: false deb_packages: diff --git a/roles/debian/files/motd b/roles/debian/files/motd index 1a11bc4..b0fe752 100644 --- a/roles/debian/files/motd +++ b/roles/debian/files/motd @@ -9,26 +9,39 @@ BLINK="\033[5m" # Environment -PRO="\033[1;5;31m" -LAB="\033[0;35m" -VN="\033[0;32m" -UNKNOWN="\033[0;33m" - FQDN=$(hostname --fqdn) -case "$FQDN" in - *.dc.verdnatura.es) - ENVIRONMENT="${PRO}Production${RESET}" - ;; - *.lab.verdnatura.es) - ENVIRONMENT="${LAB}Laboratory${RESET}" - ;; - *.verdnatura.es) - ENVIRONMENT="${VN}Verdnatura${RESET}" - ;; - *) - ENVIRONMENT="${UNKNOWN}Unknown${RESET}" - ;; -esac + +if [ -f "/etc/vn/env" ]; then + read -r VN_ENV < /etc/vn/env + case "$VN_ENV" in + lab) + ENV_COLOR="\033[0;32m" + ENV_TEXT="Laboratory" + ;; + pre) + ENV_COLOR="\033[0;35m" + ENV_TEXT="Pre-production" + ;; + test) + ENV_COLOR="\033[0;33m" + ENV_TEXT="Testing" + ;; + pro) + ENV_COLOR="\033[1;5;31m" + ENV_TEXT="Production" + ;; + *) + ENV_COLOR="\033[0;36m" + ENV_TEXT="$VN_ENV" + ;; + esac +fi +if [ -z "$ENV_TEXT" ]; then + ENV_COLOR="\033[0;37m" + ENV_TEXT="Undefined" +fi + +ENV_TEXT="${ENV_COLOR}${ENV_TEXT}${RESET}" # Last login @@ -57,7 +70,7 @@ if [ $SHOW_UPGRADEABLE -eq 1 ] ; then UPGRADEABLE="$(apt list --upgradable 2>/dev/null | tail -n +2 | wc -l)" if [ "$UPGRADEABLE" -gt 0 ]; then - UPGRADEABLE_ALERT="${BLINK}($UPGRADEABLE upgradeable)${RESET}" + UPGRADEABLE_ALERT="($UPGRADEABLE upgradeable)" fi fi @@ -97,6 +110,6 @@ echo -e "${LABEL}Packages :${RESET} $PACKAGES $UPGRADEABLE_ALERT" echo -e "${LABEL}IP :${RESET}" echo -e "$NET_IPS" echo -e "${LABEL}Last Login :${RESET} $LAST_LOGIN" -echo -e "${LABEL}Environment :${RESET} $ENVIRONMENT" +echo -e "${LABEL}Environment :${RESET} $ENV_TEXT" echo -e "${LABEL}Connected users :${RESET}" echo -e "$CONNECTED_USERS" diff --git a/roles/debian/files/profile.sh b/roles/debian/files/profile.sh index ab1ac12..5c2fc14 100644 --- a/roles/debian/files/profile.sh +++ b/roles/debian/files/profile.sh @@ -4,22 +4,40 @@ FQDN=$(hostname --fqdn) -if [[ $FQDN == *.verdnatura.es ]]; then - SHORT_HOST=${FQDN%.verdnatura.es} +if [ -f "/etc/vn/env" ]; then + SHORT_HOST=${FQDN%.*.*} + if [ -z "$SHORT_HOST" ]; then + read -r SHORT_HOST < /etc/hostname + fi - case "$SHORT_HOST" in - *.dc) - ENVIRONMENT="\[\033[01;31m\]PRO\[\033[00m\]" + read -r VN_ENV < /etc/vn/env + case "$VN_ENV" in + lab) + ENV_COLOR="\033[01;32m" ;; - *.lab) - ENVIRONMENT="\[\033[01;35m\]LAB\[\033[00m\]" + pre) + ENV_COLOR="\033[01;35m" + ;; + test) + ENV_COLOR="\033[01;33m" + ;; + pro) + ENV_COLOR="\033[01;31m" ;; *) - ENVIRONMENT="\[\033[01;32m\]VN\[\033[00m\]" + ENV_COLOR="\033[01;36m" ;; esac - PS1="\u@$SHORT_HOST[$ENVIRONMENT]:\w" + ENV_TEXT=${VN_ENV^^} + + if [ -z "$ENV_TEXT" ]; then + ENV_TEXT="???" + ENV_COLOR="\033[01;37m" + fi + + ENV_TEXT="\[${ENV_COLOR}\]${ENV_TEXT}\[\033[00m\]" + PS1="\u@$SHORT_HOST[$ENV_TEXT]:\w" if [ "$(id -u)" -eq 0 ]; then PS1="$PS1# " @@ -40,8 +58,8 @@ TMOUT=3600 # Aliases -#export LS_OPTIONS='--color=auto' -#eval "$(dircolors)" -#alias ls='ls $LS_OPTIONS' -#alias ll='ls $LS_OPTIONS -l' -#alias la='ls $LS_OPTIONS -la' +export LS_OPTIONS='--color=auto' +eval "$(dircolors)" +alias ls='ls $LS_OPTIONS' +alias ll='ls $LS_OPTIONS -l' +alias la='ls $LS_OPTIONS -la' diff --git a/roles/debian/tasks/config.yml b/roles/debian/tasks/config.yml new file mode 100644 index 0000000..b0152d2 --- /dev/null +++ b/roles/debian/tasks/config.yml @@ -0,0 +1,9 @@ +- name: Create company configuration directory + file: + path: /etc/vn + state: directory + +- name: Set environment file + copy: + dest: /etc/vn/env + content: "{{vn_env}}\n" diff --git a/roles/debian/tasks/main.yml b/roles/debian/tasks/main.yml index 87dcf43..0489802 100644 --- a/roles/debian/tasks/main.yml +++ b/roles/debian/tasks/main.yml @@ -13,6 +13,8 @@ block: - import_tasks: witness.yml tags: witness + - import_tasks: config.yml + tags: config - import_tasks: root.yml tags: root - import_tasks: resolv.yml