user:organigramme_elosys.png

Administration system

0: le vrai unix

1: emulateur de terminal (celui quon utilise tt le temps)

* $ pour utilisateur simple

  • # root super user
      SHELL
  /     |    \
ZSH    BASH   fish

hyperviseur debian Proxmox VE est une solution de virtualisation libre Il intègre l'hyperviseur linux kvm, Proxmox est une solution de virtualisation de type “bare metal”.

* jedi : autocomplete * flake8 and pep8 ⇒ guide python code

* pour crer une nouvelle branche: gib <nom de la branche>

* pour changer le message d'un commit: git –amend

git remote -v

lorsque on ajoute des commit dans la mauvasise branche et on veut revenir a notre etat :

1. on creer une branche ou on se trouve (gib nouvelle_b)

2. git push nouvelle branche

3. git reset (code du commit ou on veut revenir)

4. git push -f origin ancienne_b

deplacer le head dans une branche sans garder les modification local

git reset –hard origin/branch

$ django-admin startproject nom

manage.py : le point dacce de tt le projet

  • setting: contint les configuration et les applications …
  • wsgi inside sittings: la variable qui nous permet de mettre le projet en production
$ python3 manage.py startproject core  #creer une appli dans le grand projet
$ python3 manage.py runserver
$ python3 manage.py makemigration
$ python3 manage.py createsuperuser

Create a directory named tmp/files in the current working directory:

mkdir -p tmp/files

permet dafficher les 5 dernieres ligne d'un fichier: tail -5 *

Delete all of the files in this challenge directory including all subdirectories and their contents.

Hint: There are files and directories that start with a dot “.”, “rm -rf *” won't work here! ===⇒ rm -r .* *

There is a file named access.log in the current working directory. Print all lines in this file that contains the string “GET”.

 grep "GET " access* 

print in bash:

echo hello world
date +hello\ world
printf "hello world"
  • n'importe quel chiffre: \d OR [0-9]
  • on prend aucun chiffre; \D OR [^0-9]
  • ^ debut de ligne
  • $ fin de ligne
  • \b debut ou fin de mot

X? X apparait une ou 0 fois

X* X apparait un nombre quelconque

X+ une ou plus

X{n} x apparait n fois^

sed 's/dark/clear/g' axx_reg.txt ⇒ remplacer tt les mot dark avec clear

sed 's/dark/clear/' axx_reg.txt ⇒ remplacer que le premier mot

sed -n '/^#/p' test.py ⇒ afficher les lignes qui commences par un #

 $ sed '1 s/Python/perl/' python.txt  # => remplacer la premiere python par perl (que la toute premiere) 

take all lower case letters and make them upper case =⇒ cat example.txt | tr 'a-z' 'A-Z'


# on remplace tt le mot ancienne-adresse par ⇒ nouvelle-adresse dans tt les fichier .php

$ for f in *.php; do sed -i -e 's/ancienne-adresse/nouvelle-adresse/' “$f”; done

instalation sous proxmox

recuperer le lien et le le mot de passe

acceder a proxmox en cas d'erreur :

creer la vm:

    +------------------------------+
    |              |               |
    |   VM O    ------>  VM N      |  vM
    |              |               |
    |------------------------------+
    |                              |
    |                              |
    |              |               |
    |          NEDJMA PVE          | metal
    |                              |
    |______________________________|

de nadjma pve on accede a vm pld avec ssh

Convertir une image docker en fichier .tar. -o pour output

In the old VM

docker -o odoo.tar odoo:12

Copy to the new VM

$ scp odoo.tar sysadm@ip:

$ scp postgres.tar sysadm@ip:

On the new VM:

$ docker load -i odoo.tar # (extraire les image et les ajouter dans docker) i pour input

$ docker load -i postgres.tar

buid et up au mm temps:

docker-compose up –build

docker inspect elosys | grep -i home ==⇒ pour voir on le container est up

pour coppier un truc a l'interieur du conteneur ==⇒

docker cp fichier container_id:chemin_interieur_container

docker logs

docker events

++ recuperer synchronise_data:

nro7o l ossier en question w ndiro: ../synchronise_data

++ dump_pg docker exec elosys_db pg_dumpall -U postgres > /home/meriem/backups/elosys_db.sql

++ compresser tar -cvf elosys_db.sql.bz2 elosys_db.sql

  arrchiver et compresser db.sql et la mettre dans db.sql.bz2
  

++decompresser

tar -xvf elosys_db.sql.bz2 extrere db.sql.bz2 et le mettre dans db.sql

pour desactive l'accee avec mot de passe ssh:

on va sur etc/ssh/sshd_config on l'ouvre avec vim ou autre : password ⇒ no

on relance sshd pour qu'il applique les modifications: restart sshd

la ou on trouve chaque hôte avec son ip et son port: .ssh/config.d/ssh_config

logiciel d'automatisation et dhorchestration des serveurs

ex: on configure notre serveur puis ils tombent en panne avec ansible on refait pas la configuration

si on a plusieurs serveur a configure de la mm chose on le fait avec ansible

fichier. yaml ⇒ ecrit en python

all
- hosts: all
  tasks:
    - name: install packages
      become: true
      become_user: root
      dnf:
        state: present
        name:
         - tcsh
         - htop
ansible all -i playbook.yml  --user=user -m "ping"

ansible-playbook -i hosts.yml --user=user playbook.yml

ansible-playbook -i hosts.yml --user=user --ask-become-pass playbook.yml #pour introduire le mot de passe

sudo logrotate -f -v /etc/logrotate.conf

nslookup domain

IP TABLEs

comment supprimer une ligne

1. on numeroté le nombre de ligne :::> sudo iptables -L -t nat –line-numbers

2. on supprime :::> sudo iptables -t nat -D PREROUTING 3

firewall: on peut filtrer par port/ par ip…

on l'instale : install iptables

contient la table : NAT

                  vm contient ip table
 pré routing ---> |                      |  --> post routing
          source  |                      |       redirection ( destination)
                 dnat: ip de destination
                 snat: ip source
    la table: filter
    
     chaine: input => de la on peut bloque des @ip de site ...
     
             output => on peut aussi bloqué des ports ou des ips
             
             fowrword
   target:
      drop =>
     cron commande
  45 4 * * * /home/sysadm/bin/backup_data --dbname db_name --docker db --extra-addons /home/sysadm/service.luxy/extra-addons --filestore /home/sysadm/service.luxy/filestore/filestore/db_name/
  db_name => pas celle du container => docker exec -it container_name psql -U postgers -c '/l'  => db_name from docker
  /home/ubuntu/bin/backup_data --dbname pt_db --docker db --extra-addons /home/ubuntu/power_tools_odoo_14/extra-addons --filestore /home/ubuntu/power_tools_odoo_14/filestore/pt_db/

wifi debian pass wifi elo 777ABCDE

ubuntu@ov-521071:~/power_tools_odoo_14
network manager => wifi debian
nmtui => activer cnx wifi

Steps:

1. recuperer les trois fichiers de (filestore /extra-addons/ database) du serveur .10 “scp aziz@192.168.1.10:backupos/backup .”

2. dcu (pour creer les 3 dossier (data/extra-addons filestore)

3. mkdir -p filestore/filestore/bdd_name

restore db:

bzcat $database_file | docker exec -i $db_container_name psql -U $db_user -d template1 

restore filestore:

 tar xfz $filestore_file -C filestore/filestore/$database_name

restore extra addons:

 tar xzf $extra_addons_file -C extra-addons 

L'en-tête X-Forwarded-Proto (XFP) est un en-tête standard de facto permettant d'identifier le protocole (HTTP ou HTTPS) utilisé par un client pour se connecter à votre proxy ou équilibreur de charge. Vos journaux d'accès au serveur contiennent le protocole utilisé entre le serveur et l'équilibreur de charge, mais pas le protocole utilisé entre le client et l'équilibreur de charge. Pour déterminer le protocole utilisé entre le client et l'équilibreur de charge, l'en-tête de requête X-Forwarded-Proto peut être utilisé.

git clone git@igpro.ddns.net:system/bin.git

backup

ubuntu@ov-xxxxxx:~$ sudo ./backup_data \
                         --dbname pt_db --docker ark_group_db \
                         --extra-addons /home/ubuntu/power_tools_odoo_14/addons \
                         --filestore /home/ubuntu/power_tools_odoo_14/filestore/filestore/pt_db

docker exec -it odoo14_db psql -U postgres -d d

afficher la premiere colonne: ps | awk '{print $1}'

print colonne 1 and 6 and 7 with tab between them: cat /etc/passwd | awk -F “:” '{print $1“\t ” $6“ ” $7}'

on va les séparer par des “-”: cat /etc/passwd | awk 'BEGIN{FS=“:”; OFS=“-”} {print $1,$6,$7}'

afficher toute les ligne qui commance par “/”:

 sudo df | awk '/^\// {print}' 

on va prendre la dernière colonne depuis les lignes qui commence par “/”:

awk -F "/" '/^\// {print $NF}' /etc/shells 

en cas de changement dans le ficher on recupere le fichier modifier: revert-buffer

open file: C-x C-f

press papier: “kill ring”

M-s meta-shift alt-shift

select all : C-x h

debuter la selection: C-espace

selctionner jusqu'au debut de ligne: C-espace C-a

selctionner jusqu'a la fin de ligne: C-espace C-e

copier une region: alt-w

couper le contenu de la region selectionner: C-w

yank c pour coller: C-y

forward word (prochain mot): M-f

forward caracter: C-f

backward caracter: C-b

backward word: M-b

pour voir tt les buffers qui sont pas sauvegarder: C-x s

list all buffer: C-x C-b

switch buffer: C-x b

keyboard quit (annuler): C-g

pour quitter emacs: C-x C-c

kill buffer: C-x k

search: C-s

undo: C-_

kill line from point to end of line: C-k

debut fichier: alt-<

fin de fichieralt→ ;

emacs windows

C-o: basculer entre les fenetre

C-x & : garder une seule

C-x é: diviser la fenetre verticale

C-x “: diviser la fenetre horizontal

redo (C-y) undo-tree (bibliotheque): espace C-_ C-_

gestion des processus

C-z : c pour faire pause

gf : c pour le restarter

jobs: affihcer les process du background (stoppé)

quand on a deux process stoppe (backgrouynd)

jobs ⇒ on recupere le nu m du process

fg numprocess

kill %numprocess : pour tuer le process

on va sur : /home/admin/proxy_ssl/DOMAINES_IP_TABLES

sudo iptables -t nat -A PREROUTING -p tcp -i vmbr0 -m tcp –dport 9125 -j DNAT –to-destination 192.168.1.125:22

SSH Forwarding

ssh -N -p 2222 -L 5000:0.0.0.0:5000 sysadm@max-protect.tcp4.me

ajouter un nouveau domain name

on le crer sur amen de type 1 ou cname

dans notre cas on a crer ; dz.labomaster.com qui pointe sur labomaster.dz: #host pour avoir l'adress ip on va sur om: wproxy /nginx guid.txt: on ajoute le domaine avec l'@ ip ou il pointe (ip dokcer) on lance le script ./dmanage.dl

comment telecharger un dossier gitlab

{GITLAB_URL}/projects/{PROJECT_ID}/repository/archive.zip?sha={branch}&path={module_name}

exemple:

https://git.elosys.net/api/v4/projects/1644/repository/archive.zip?sha=14.0&path=l10n_dz_elosys

comment telecharger un fichier d'un depot gitlab

1. supprimer la base de donner qui a le même nom que l'instance

docker exec -it postgres psql -U postgres

#postgres: DROP DATABASE nom_instance;

2. supprimer le fichier de l'instance qui contient un extra-addons .. ⇒ il se trouve dans + home/extra-addons

3. supprimer le filestore du mm nom qui se trouve dans filestore/filestore/…

4. docker stop container + docker rm container

https://medium.com/geekculture/how-to-upload-file-to-google-drive-from-linux-command-line-69668fbe4937

wget https://github.com/prasmussen/gdrive/releases/download/2.1.1/gdrive_2.1.1_linux_386.tar.gz

tar -xvf gdrive_2.1.1_linux_386.tar.gz

./gdrive about ==> authorisé l'acce a google drive + tu recupere unh code d'autorisation

./gdrive upload /home/documents/file_name.zip

s'il ya un probleme avec les base de donnée base(11, 12, 13, 14, 15) des live

on va sur : live ⇒ rembin ⇒ db_setup.sh

a la fin du script on trouve cette ligne

setup_template_dbs base15 odoo:15.0

on change 15 avec la version q'on veut creer

et on lance le script : bash db_setup.sh

sudo crontab -e
$ docker exec -i elosys_cont pg_dump -U postgres --create --format=plain {db_name} | bzip2 > path/{db_name}{date_synch}.bz2
  • user/meriem.txt
  • Last modified: 2023/01/22 16:01
  • by aziz