ditching ansible, using local script

This commit is contained in:
2021-02-08 11:44:21 +01:00
parent 0819d676cf
commit 33d738a69f
4 changed files with 41 additions and 71 deletions

15
eval.sh
View File

@@ -1,15 +0,0 @@
#! /bin/bash
set -e
set -u
source /root/functions.sh
addHeader "user_operateur" "pass_operateur" "sudo_config" "ssh_key_tom" "log_operateur" "logrotate"
userExists operateur
userHasPassword operateur
fileMustExist /etc/sudoers.d/operateur
fileMustContain ~operateur/.ssh/authorized_keys tom@workine
fileMustExist /var/log/operateur.log
fileMustExist /etc/logrotate.d/operateur.log

View File

@@ -1,39 +0,0 @@
---
- hosts:
- all
user: epsi
become: true
gather_facts: false
vars:
result_file: "{{ '%Y-%m-%d' | strftime }}_tp.csv"
script: eval.sh
# pre_tasks:
# - name: insert header
# lineinfile:
# path: "{{ result_file }}"
# line: "machine\tuser\tdir bin\tscript exists\tif\tmysqldump\texit\targ0\targ1\targ2\trc\tdate\texecOk\ttaille"
# state: present
# create: true
# delegate_to: localhost
tasks:
- name: copy script
copy:
src: "{{ item }}"
dest: /root
mode: 0700
loop:
- "{{ script }}"
- "functions.sh"
- name: exec script
command: /root/eval.sh
register: result
- name: get result
lineinfile:
path: "{{ result_file }}"
line: "{{ result.stdout }}"
create: true
delegate_to: localhost

View File

@@ -4,6 +4,14 @@ function e {
echo -ne "${1}\t"
}
# file mtime
# arg1: file
function fileMTime {
if [ ! -f $1 ] ; then echo -ne "0\t" ; return 0 ; fi
stat --printf "%y\t" $1
}
#ok if given program returns given code
# arg1: program to run
# arg2: expected return code (default 0)
@@ -113,37 +121,39 @@ function fileMustNOTContain {
echo -ne "1\t"
fi
}
# argn: nth columne name
# Ok if given user exists
# Arg1: user
function userExists {
if ( grep -iq $1 /etc/passwd ) ; then e 1 ; else e0 ; fi
}
# Ok if given group exists
# Arg1: group
function groupExists {
if ( grep -iq $1 /etc/group ) ; then e 1 ; else e0 ; fi
}
# insert hostname at beginning of result line
function addHeader {
test -f /etc/motd && user="$(cat /etc/motd | sed 's/\n//')\t"
echo -ne "\n\t\t"
for i in $@ ; do echo -ne "$i\t" ; done
echo -ne "\n"
echo -ne "${user}$(hostname -s)\t"
}
# Ok if given user exists
# arg1: user to check
function userExists {
if ( grep -q $1 /etc/passwd ) ; then e 1 ; else e 0 ; fi
}
# Ok if given use has a password
# arg1: user to check
function userHasPassword {
if ( passwd --status $1 2>&1 | grep -q 'Password set' ) ; then e 1 ; else e 0 ; fi
}
# Ok if given package is installed
# arg1: pkg to check
function pkgInstalled {
if ( rpm -qa| grep -qi $1 ) ; then echo -ne "1\t" ; else echo -ne "0\t" ; fi
pkglist=/tmp/pkg.list
test -f $pkglist || rpm -qa > $pkglist
if ( grep -qi $1 $pkglist ) ; then echo -ne "1\t" ; else echo -ne "0\t" ; fi
}
# Ok if given package is NOT installed
# arg1: pkg to check
function pkgNotInstalled {
if ( rpm -qa |grep -qiE $1 ) ; then echo -ne "0\t" ; else echo -ne "1\t" ; fi
pkglist=/tmp/pkg.list
test -f $pkglist || rpm -qa > $pkglist
if ( grep -qiE $1 $pkglist ) ; then echo -ne "0\t" ; else echo -ne "1\t" ; fi
}
# ok if given process is running

14
localeval.sh Normal file
View File

@@ -0,0 +1,14 @@
#! /bin/bash
source functions.sh
# check that alias has been tried
echo -ne "host\tname\t<+CHANGEME+>\n"
for host in /srv/lxc/epsi/b1/* ; do
root=${host}/rootfs
host=$(basename $host)
hostname=$(grep HOSTNAME ${root}/etc/sysconfig/network | cut -f2 -d=)
test -f ${root}/etc/motd && user="$(cat ${root}/etc/motd | sed 's/\n//')\t"
echo -ne "${hostname}\t${user}"
<+CHANGEME+>
echo
done