Billets

  • Un serveur Git sur son smartphone

    Après avoir installer LinuxDeploy sur son portable comme vu dans le precedent billet,

    Installation

    sudo aptitude install git
    

    Ajout des utilisateurs et groupe

    sudo groupadd gitusers
    sudo useradd -g gitusers -s /usr/bin/git-shell git
    sudo useradd -g gitusers -s /usr/bin/git-shell gitadmin
    sudo mkdir /opt/git/
    sudo chown gitadmin:gitusers /opt/git/
    

    Utilisation

    Fichiers git-shell

    list

     1 #!/bin/sh
     2 
     3 REPODIR="/opt/git"
     4 
     5 print_if_bare_repo='
     6 	if "$(git --git-dir="$1" rev-parse --is-bare-repository)" = true
     7 	then
     8 		printf "%s\n" "${1#./}"
     9 	fi
    10 '
    11 
    12 find $REPODIR -type d -name "*.git" -exec sh -c "$print_if_bare_repo" -- \{} \; -prune 2>/dev/null

    create (adminonly)

     1 #!/bin/sh
     2 
     3 # If no project name is given
     4 if [ $# -eq 0 ]
     5 then
     6 
     7 	# Display usage and stop
     8 	echo "Usage: create <project.git>"
     9 	exit 1
    10 
    11 fi
    12 
    13 # Set the project name, adding .git if necessary
    14 project=$(echo "$*" | sed 's/\.git$\|$/.git/i')
    15 
    16 # Create and initialise the project
    17 mkdir "/opt/git/$project" && \
    18 cd "/opt/git/$project" && \
    19 git --bare init && \
    20 chmod 0775 "/opt/git/"

    addkeygit (adminonly)

     1 #!/bin/sh
     2 # Read in the SSH key
     3 echo "Input the key to be added:"
     4 read key
     5 
     6 # Place the key in a temporary file (it's hard to get ssh-keygen
     7 # to read from stdin; <<< works for bash, but is non-posix)
     8 keyfile=$(tempfile) &&\
     9 echo "$key" > $keyfile
    10 
    11 # Generate a fingerprint
    12 fingerprint=$(ssh-keygen -lf $keyfile)
    13 
    14 # Check for errors
    15 if [ $(echo "$fingerprint" | egrep -c '(R|D)SA') -eq 0 ]
    16 then
    17 
    18 	# Display the fingerprint error and clean up
    19 	echo "Error: $fingerprint"
    20 	rm $keyfile
    21 	exit 1
    22 
    23 fi
    24 
    25 # Add the key to the authorised keys file and clean up
    26 mkdir -p .ssh &&\
    27 echo -n "no-agent-forwarding,no-port-forwarding,no-X11-forwarding " >> /home/git/.ssh/authorized_keys &&\
    28 cat $keyfile >> .ssh/authorized_keys
    29 rm $keyfile
    30 
    31 # Display the fingerprint for reference
    32 echo "Success! Added a key with the following fingerprint:"
    33 echo $fingerprint

    addkey

     1 #!/bin/sh
     2 # Read in the SSH key
     3 echo "Input the key to be added:"
     4 read key
     5 
     6 # Place the key in a temporary file (it's hard to get ssh-keygen
     7 # to read from stdin; <<< works for bash, but is non-posix)
     8 keyfile=$(tempfile) &&\
     9 echo "$key" > $keyfile
    10 
    11 # Generate a fingerprint
    12 fingerprint=$(ssh-keygen -lf $keyfile)
    13 
    14 # Check for errors
    15 if [ $(echo "$fingerprint" | egrep -c '(R|D)SA') -eq 0 ]
    16 then
    17 
    18 	# Display the fingerprint error and clean up
    19 	echo "Error: $fingerprint"
    20 	rm $keyfile
    21 	exit 1
    22 
    23 fi
    24 
    25 # Add the key to the authorised keys file and clean up
    26 mkdir -p .ssh &&\
    27 echo -n "no-agent-forwarding,no-port-forwarding,no-X11-forwarding " >> .ssh/authorized_keys &&\
    28 cat $keyfile >> .ssh/authorized_keys
    29 rm $keyfile
    30 
    31 # Display the fingerprint for reference
    32 echo "Success! Added a key with the following fingerprint:"
    33 echo $fingerprint
  • Transformer son téléphone android en mini server

    Parfois il peut s’averer utile d’avoir un mini serveur sur soi pour montrer un prototype de site web ou application web, ou encore avoir un serveur GIT dans la poche.

    Il est tout à fait possible d’utiliser son “smartphone” pour cela. Un téléphone sous android 2.1 minimum, une sdcard de quelques Giga (en fat un fichier ne peu depasser les 4Go le système est stocké dans un fichier) et une bonne connexion internet, L’application LinuxDeploy et le tour et joué. Linux Deploy n’est pas une solution de virtualisation c’est un chroot du sysème android vers une distribution particulière. Linux Deploy propose pas mal de distribution (Debian, Gentoo, etc …). Ici j’utiliserais Debian comme distribution de réference.

    Installation

    Il faut installer SuperSu et LinuxDeploy sur le téléphone, en demarrant LinuxDeploy vous devez choisir la destination du fichier image “/storage/extSdCard/monimage.img” la distribution le système de fichier et la taille de l’image. Pour ma part j’utilise Other comme “DesktopEnvironnement” car je n’utilise que la console. Revener sur clique sur install pour demarrer l’installation.

    Ensuite

    Pour quoi pas installer :

    • un serveur web (nginx, php, sqlite) à voir bientôt.
    • un serveur git à voir ici.

    Astuce

    Si comme moi vous avez commencer à travailler avec une image trop petite 2Go voici l’astuce pour copier les données d’une image fichier à une autre.

    # sudo mkdir /mnt/source
    # sudo mkdir /mnt/destination
    # sudo mount -o loop /tmp/imageorig.img /mnt/source
    # sudo mount -o loop /tmp/imagedest.img /mnt/destination
    # sudo cp -a /mnt/mnt/source/* /mnt/destination
    

    Le fichier “imagedest.img” contient maintenant les données de “imageorig.img”

    Bibliographie

S'abonner avec RSS