First Commit

Steps to start the playook
1- Add hosts in /etc/ansible/hosts
2- Create vault secret password
	example: ansible-vault create secret
    it will promot yoy to enter password
    inside secret file add the line: (ansible_sudo_pass: yourSudoPassword)
3- Create text file for vault secret and place inside the password of secret file from previous step
4- To execute the playbook just run the following
ansible-playbook playbook_name --sudo --vault-password-file=vault.txt
master
ibrahim.tarik 2021-09-07 13:20:39 +00:00
parent 08fef990a8
commit a22b33e5ca
2 changed files with 356 additions and 0 deletions

View File

@ -0,0 +1,257 @@
---
- name: Playbook
hosts: ansible_client
become: yes
become_user: root
vars_files:
- secret
tasks:
- name: Download SAS4 ISO IMAGE
get_url:
url: http://192.168.240.50/sas4.iso
dest: /root/sasradius.iso
mode: '0666'
- name: create a directory for ISO image mounting point
file:
path: /mnt/sas
owner: root
group: root
state: directory
mode: 0755
- name: Mount an ISO Temporarily
mount:
src: /root/sasradius.iso
path: /mnt/sas
fstype: iso9660
opts: ro
state: mounted
- name: updating apt cache
apt:
update_cache: yes
- name: Install debian Package 1 mc
apt:
name: mc
ignore_errors: yes
- name: Install debian Package 2 supervisor
apt:
name: supervisor
ignore_errors: yes
- name: Install debian Package 3 mysql-client
apt:
name: mysql-client
ignore_errors: yes
- name: Install debian Package 4 mysql-server
apt:
name: mysql-server
ignore_errors: yes
- name: Install debian Package 5 apache2
apt:
name: apache2
ignore_errors: yes
- name: Install debian Package 6 php7.2-mysql
apt:
name: php7.2-mysql
ignore_errors: yes
- name: Install debian Package 7 php7.2-cli
apt:
name: php7.2-cli
ignore_errors: yes
- name: Install debian Package 8 php7.2-gd
apt:
name: php7.2-gd
ignore_errors: yes
- name: Install debian Package 9 php7.2-xml
apt:
name: php7.2-xml
ignore_errors: yes
- name: Install debian Package 10 php-tcpdf
apt:
name: php-tcpdf
ignore_errors: yes
- name: Install debian Package 11 php-net-smtp
apt:
name: php-net-smtp
ignore_errors: yes
- name: Install debian Package 12 php-mail
apt:
name: php-mail
ignore_errors: yes
- name: Install debian Package 13 php7.2-json
apt:
name: php7.2-json
ignore_errors: yes
- name: Install debian Package 14 libmysqlcppconn7v5
apt:
name:
ignore_errors: yes
- name: Install debian Package 15 libcrypto++6
apt:
name: libcrypto++6
ignore_errors: yes
- name: Install debian Package 16 libtalloc2
apt:
name: libtalloc2
ignore_errors: yes
- name: Install debian Package 17 libapache2-mod-php
apt:
name: libapache2-mod-php
ignore_errors: yes
- name: Install debian Package 18 jq
apt:
name: jq
ignore_errors: yes
- name: Install debian Package 19 openssh-server
apt:
name: openssh-server
ignore_errors: yes
- name: Install debian Package 20 net-tools
apt:
name: net-tools
ignore_errors: yes
- name: Install debian Package 21 php-mbstring
apt:
name: php-mbstring
ignore_errors: yes
- name: Install debian Package 22 php-zip
apt:
name: php-zip
ignore_errors: yes
- name: Install debian Package 23 curl
apt:
name: curl
ignore_errors: yes
- name: Install debian Package 24 sendemail
apt:
name: sendemail
ignore_errors: yes
- name: Install debian Package 25 libcurl3-gnutls
apt:
name: libcurl3-gnutls
ignore_errors: yes
- name: Install debian Package 26 libnet-ssleay-perl
apt:
name: libnet-ssleay-perl
ignore_errors: yes
- name: Install debian Package 27 libio-socket-ssl-perl
apt:
name: libio-socket-ssl-perl
ignore_errors: yes
- name: Install debian Package 28 pptp-linux
apt:
name: pptp-linux
ignore_errors: yes
- name: Install debian Package 29 pptpd
apt:
name: pptpd
ignore_errors: yes
- name: Install debian Package 30 at
apt:
name: at
ignore_errors: yes
- name: Install debian drive package
apt:
deb: /mnt/sas/pool/extras/drive_0.3.9.1-2_amd64.deb
ignore_errors: yes
- name: Install debian Package 32 expect
apt:
name: expect
ignore_errors: yes
- name: Install debian Package 33 libsensors4
apt:
name: libsensors4
ignore_errors: yes
- name: Install debian Package 34 snmp
apt:
name: snmp
ignore_errors: yes
- name: Install debian Package 35 libmysqlclient20
apt:
name: libmysqlclient20
ignore_errors: yes
- name: Install debian Package 36 libmysqlcppconn7v5
apt:
name: libmysqlcppconn7v5
ignore_errors: yes
- name: create sas group
group: name=sas state=present
- name: Add sas user and add it to sudo
user: name=sas
state=present
createhome=yes
password="{{ 'sas123' | password_hash('sha512') }}"
shell="/bin/bash"
groups=sas,sudo,cdrom
append=yes
- name: add the user to sudo group
shell: "usermod -aG sudo sas"
- name: Install debian snono-sas4 package
apt:
deb: /mnt/sas/pool/extras/snonosystems-sas4.deb
ignore_errors: yes
- name: Fix missing shared libraries
command: "/sbin/ldconfig -v"
ignore_errors: yes
- name: change directory before unmount
command: chdir=/root ls
ignore_errors: yes
- name: Unmount the ISO
mount:
path: /mnt/sas
state: unmounted
ignore_errors: yes
- name: Run First Time Script
command: "/opt/sas4/scripts/firsttime.sh"
ignore_errors: yes

99
services_check.yml 100644
View File

@ -0,0 +1,99 @@
---
- name: Checking Services Status
hosts: ansible_client
become: yes
become_user: root
vars_files:
- secret
tasks:
- name: checking Apache2 Service
service_facts:
- debug:
var: ansible_facts.services.apache2.state
- name: checking sas_sms Service
service_facts:
- debug:
var: ansible_facts.services["sas_sms.service"].state
- name: checking sas_mailpoller Service
service_facts:
- debug:
var: ansible_facts.services["sas_mailpoller.service"].state
- name: checking sas_crontab Service
service_facts:
- debug:
var: ansible_facts.services["sas_crontab.service"].state
- name: checking sas_policymanager Service
service_facts:
- debug:
var: ansible_facts.services["sas_policymanager.service"].state
- name: checking sas_trafficaccounting Service
service_facts:
- debug:
var: ansible_facts.services["sas_trafficaccounting.service"].state
- name: checking supervisor Service
service_facts:
- debug:
var: ansible_facts.services.supervisor.state
- name: checking sas_dispoller Service
service_facts:
- debug:
var: ansible_facts.services["sas_dispoller.service"].state
- name: checking mysql Service
service_facts:
- debug:
var: ansible_facts.services.mysql.state
- name: checking sas_poller Service
service_facts:
- debug:
var: ansible_facts.services["sas_poller.service"].state
- name: checking sas_profilechanger Service
service_facts:
- debug:
var: ansible_facts.services["sas_profilechanger.service"].state
- name: checking sas_systemmanager Service
service_facts:
- debug:
var: ansible_facts.services["sas_systemmanager.service"].state
- name: checking sas_cardsgenerator Service
service_facts:
- debug:
var: ansible_facts.services["sas_cardsgenerator.service"].state
- name: checking freeradius Service
service_facts:
- debug:
var: ansible_facts.services["freeradius.service"].state
- name: checking sas_updatemanager Service
service_facts:
- debug:
var: ansible_facts.services["sas_updatemanager.service"].state
- name: Checking system Storage
shell: "df -kh"
register: storage
- debug:
var: storage
- name: Checking system Memory
shell: "free -h"
register: memory
- debug:
var: memory