Compare commits
4 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| e99de9cdff | |||
| 61ff6ac0b5 | |||
| 660c9d13ff | |||
| 7129a0849a |
6
.env
6
.env
@ -2,12 +2,12 @@
|
|||||||
# Repository generator
|
# Repository generator
|
||||||
|
|
||||||
# Version of image
|
# Version of image
|
||||||
RepoVers=1
|
RepoVers=2
|
||||||
# Centos Version
|
# Centos Version
|
||||||
#CentOsVersion=centos:7.9.2009
|
#CentOsVersion=centos:7.9.2009
|
||||||
CentOsVersion=oraclelinux:8.6
|
CentOsVersion=oraclelinux:8.7
|
||||||
Cible=oraclelinux
|
Cible=oraclelinux
|
||||||
VersionCible=8.6
|
VersionCible=8.7
|
||||||
PackageManager=dnf
|
PackageManager=dnf
|
||||||
# Sync repo script
|
# Sync repo script
|
||||||
Run=/usr/local/bin/sync.sh
|
Run=/usr/local/bin/sync.sh
|
||||||
|
|||||||
1
.gitignore
vendored
1
.gitignore
vendored
@ -2,4 +2,5 @@ Dockerfile
|
|||||||
data/
|
data/
|
||||||
docker-compose.yml
|
docker-compose.yml
|
||||||
cible
|
cible
|
||||||
|
images
|
||||||
|
|
||||||
|
|||||||
@ -18,7 +18,7 @@ RUN ${PackageManager} install screen -y
|
|||||||
#COPY ./bin/repo.sh /usr/local/bin/repo.sh
|
#COPY ./bin/repo.sh /usr/local/bin/repo.sh
|
||||||
COPY ./bin/ /usr/local/bin/
|
COPY ./bin/ /usr/local/bin/
|
||||||
#RUN chmod 755 /usr/local/bin/repo.sh
|
#RUN chmod 755 /usr/local/bin/repo.sh
|
||||||
RUN chmod 755 /usr/local/bin/*
|
RUN chmod -R 755 /usr/local/bin/
|
||||||
#COPY ./bin/empty.sh /usr/local/bin/empty.sh
|
#COPY ./bin/empty.sh /usr/local/bin/empty.sh
|
||||||
#RUN chmod 755 /usr/local/bin/empty.sh
|
#RUN chmod 755 /usr/local/bin/empty.sh
|
||||||
|
|
||||||
|
|||||||
@ -19,7 +19,7 @@ RUN ${PackageManager} install screen -y
|
|||||||
RUN echo COPY
|
RUN echo COPY
|
||||||
COPY ./bin/ /usr/local/bin/
|
COPY ./bin/ /usr/local/bin/
|
||||||
#RUN chmod 755 /usr/local/bin/repo.sh
|
#RUN chmod 755 /usr/local/bin/repo.sh
|
||||||
RUN chmod 755 /usr/local/bin/*
|
RUN chmod -R 755 /usr/local/bin/
|
||||||
#COPY ./bin/empty.sh /usr/local/bin/empty.sh
|
#COPY ./bin/empty.sh /usr/local/bin/empty.sh
|
||||||
#RUN chmod 755 /usr/local/bin/empty.sh
|
#RUN chmod 755 /usr/local/bin/empty.sh
|
||||||
|
|
||||||
|
|||||||
@ -1,3 +1,4 @@
|
|||||||
|
#!/bin/bash
|
||||||
TestEnv() {
|
TestEnv() {
|
||||||
|
|
||||||
Check=$(which $1 2> /dev/null)
|
Check=$(which $1 2> /dev/null)
|
||||||
@ -34,7 +35,7 @@ LinkESL() {
|
|||||||
|
|
||||||
help () {
|
help () {
|
||||||
echo "
|
echo "
|
||||||
$0 [image-gen/image-repo/link/repo/gen/run-repo/run-gen]
|
$0 [image-gen/image-repo/link/repo/gen/run-repo/run-gen/import-image/save-image]
|
||||||
|
|
||||||
* $(tput setaf 3)image-gen $(tput sgr0): Generate docker image for esl compilator
|
* $(tput setaf 3)image-gen $(tput sgr0): Generate docker image for esl compilator
|
||||||
* $(tput setaf 3)image-repo $(tput sgr0): Generate docker image for repository sync
|
* $(tput setaf 3)image-repo $(tput sgr0): Generate docker image for repository sync
|
||||||
@ -43,6 +44,8 @@ $0 [image-gen/image-repo/link/repo/gen/run-repo/run-gen]
|
|||||||
* $(tput setaf 4)gen $(tput sgr0): start docker compose and generarte esl
|
* $(tput setaf 4)gen $(tput sgr0): start docker compose and generarte esl
|
||||||
* $(tput setaf 2)run-gen $(tput sgr0): Connect and run bash on instance gen
|
* $(tput setaf 2)run-gen $(tput sgr0): Connect and run bash on instance gen
|
||||||
* $(tput setaf 2)run-repo $(tput sgr0): Connect and run bash on instance repo
|
* $(tput setaf 2)run-repo $(tput sgr0): Connect and run bash on instance repo
|
||||||
|
* $(tput setaf 6)import-image $(tput sgr0): Import last backuped docker image in ./images/
|
||||||
|
* $(tput setaf 6)save-image $(tput sgr0): backup docker image in ./images/
|
||||||
|
|
||||||
"
|
"
|
||||||
exit
|
exit
|
||||||
@ -147,6 +150,36 @@ DockerComposeRun () {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
DockerSave () {
|
||||||
|
|
||||||
|
for Image in $(docker image ls | grep -E "^esl-repo|^esl-gen" | awk '{print $1":"$2}')
|
||||||
|
do
|
||||||
|
EslImage=$(echo $Image | cut -d":" -f1)
|
||||||
|
EslImageVersion=$(echo $Image | cut -d":" -f2)
|
||||||
|
echo -ne "Save $Image : "
|
||||||
|
docker save $Image | gzip > $(dirname $0)/images/${EslImageVersion}-$(date +%Y%m%d)_$(echo $Image | sed 's/:/-/g').gz
|
||||||
|
[[ "$?" -eq 0 ]] && echo OK || echo FAILED
|
||||||
|
done
|
||||||
|
|
||||||
|
}
|
||||||
|
DockerImport () {
|
||||||
|
|
||||||
|
if [[ $(ls -1 images | grep "esl-"| wc -l) -eq 0 ]]
|
||||||
|
then
|
||||||
|
echo "Nothing todo ..."
|
||||||
|
else
|
||||||
|
for Type in repo gen
|
||||||
|
do
|
||||||
|
GetImage=$(ls -1 images | grep $Type |sort -r -n -t"-" -k1,2 | head -n1)
|
||||||
|
echo -ne "Import $GetImage : "
|
||||||
|
zcat images/$GetImage | docker load &> /dev/null
|
||||||
|
[[ "$?" -eq 0 ]] && echo OK || echo FAILED
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#GenAll () {
|
#GenAll () {
|
||||||
# DockerGen gen
|
# DockerGen gen
|
||||||
|
|||||||
10
bin/esl.fct
10
bin/esl.fct
@ -25,6 +25,14 @@ RunScreen (){
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
LinkEpel() {
|
||||||
|
|
||||||
|
[[ ! -L $2 ]] && ln -s ol${Majeur}_developer_EPEL x86_64
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
function oraclelinux () {
|
function oraclelinux () {
|
||||||
|
|
||||||
Rand=repo${RANDOM}
|
Rand=repo${RANDOM}
|
||||||
@ -36,7 +44,7 @@ function oraclelinux () {
|
|||||||
RunScreen EPEL dnf reposync -g --newest-only --exclude='*.src' -p /data/repo/EPEL/ol${Majeur} --download-metadata --repoid=ol${Majeur}_developer_EPEL
|
RunScreen EPEL dnf reposync -g --newest-only --exclude='*.src' -p /data/repo/EPEL/ol${Majeur} --download-metadata --repoid=ol${Majeur}_developer_EPEL
|
||||||
Download /data/repo/EPEL/ EPEL
|
Download /data/repo/EPEL/ EPEL
|
||||||
Action "Get in ${osversion} EPEL" cd /data/repo/EPEL/ol${Majeur}
|
Action "Get in ${osversion} EPEL" cd /data/repo/EPEL/ol${Majeur}
|
||||||
Action "Link SeaNaps environement EPEL" ln -s ol${Majeur}_developer_EPEL x86_64
|
Action "Link SeaNaps environement EPEL" LinkEpel ol${Majeur}_developer_EPEL x86_64
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
80
create-tag-repo.sh
Executable file
80
create-tag-repo.sh
Executable file
@ -0,0 +1,80 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Print help and exit
|
||||||
|
usage(){
|
||||||
|
echo "-- $0 --"
|
||||||
|
echo "Freeze package environement in distributions. Create a 'fake' repository with real repodata but symbolic link of rpms"
|
||||||
|
echo "$0 OrigDir/repmod.xml BaseRepoDir DestDistributionBasenaemeDir"
|
||||||
|
exit
|
||||||
|
}
|
||||||
|
|
||||||
|
# Print the first arguement, execute the rest of the arguements and print the result OK/FAILED
|
||||||
|
action(){
|
||||||
|
echo -ne "${1} : "
|
||||||
|
shift
|
||||||
|
$@ &> /tmp/aaa
|
||||||
|
[[ $? -eq 0 ]] && echo -e '\033[0;32mOK\033[0m' || echo -e '\033[0;31mFAILED\033[0m'
|
||||||
|
}
|
||||||
|
|
||||||
|
# Create tree structure of the repository in the destination directory
|
||||||
|
CreateEnv(){
|
||||||
|
CptErr=0
|
||||||
|
[[ ! -d ${DirDest} ]] && mkdir -p ${DirDest} || true
|
||||||
|
CptErr=$((CptErr + $?))
|
||||||
|
for Dir in $(find -L $OrigBaseRepo -type d| sed "s#${OrigBaseRepo}##g")
|
||||||
|
do
|
||||||
|
[[ ! -d ${DirDest}/${Dir} ]] && mkdir -p ${DirDest}/${Dir} || true
|
||||||
|
CptErr=$((CptErr + $?))
|
||||||
|
done
|
||||||
|
|
||||||
|
CptErr=$((CptErr + $?))
|
||||||
|
return $CptErr
|
||||||
|
}
|
||||||
|
|
||||||
|
# for each rpm in the (get)Package directory, create a symbolic link in the destination directory
|
||||||
|
RpmLink(){
|
||||||
|
CptErr=0
|
||||||
|
for Rpm in $(find -L $OrigBaseRepo -type f -name "*.rpm" | sed "s#${OrigBaseRepo}##g")
|
||||||
|
do
|
||||||
|
[[ ! -L ${DirDest}/${Rpm} ]] && ln -s ${OrigBaseRepo}${Rpm} ${DirDest}/${Rpm} || true
|
||||||
|
CptErr=$((CptErr + $?))
|
||||||
|
done
|
||||||
|
return $CptErr
|
||||||
|
}
|
||||||
|
|
||||||
|
# Copy repodata files in the destination directory
|
||||||
|
RepoModCopy(){
|
||||||
|
cp -vf $(dirname ${RepModFile})/* $(dirname $(echo ${RepModFile}| sed "s#${BaseDirDestRepo}#${DestDir}#g"))/.
|
||||||
|
CptErr=$((CptErr + $?))
|
||||||
|
return $?
|
||||||
|
}
|
||||||
|
|
||||||
|
# Check all arguments and create variable environement for readability
|
||||||
|
CheckArg(){
|
||||||
|
[[ ! -f ${1} ]] && usage
|
||||||
|
RepModFile=${1}
|
||||||
|
[[ ! -d ${2} ]] && usage
|
||||||
|
BaseDirDestRepo=${2}
|
||||||
|
DestDir=${3}/distributions/
|
||||||
|
DirDest=$(echo $(dirname $(dirname ${RepModFile})) | sed "s#${BaseDirDestRepo}#${DestDir}#g")
|
||||||
|
OrigBaseRepo=$(echo $(dirname $(dirname ${RepModFile})))
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# Main
|
||||||
|
|
||||||
|
CheckArg ${1} ${2} ${3}
|
||||||
|
echo "
|
||||||
|
###############################################
|
||||||
|
RepModFile = ${1}
|
||||||
|
BaseDirDestRepo = ${2}
|
||||||
|
DestDir = ${3}
|
||||||
|
###############################################"
|
||||||
|
|
||||||
|
# Execute
|
||||||
|
|
||||||
|
action "Create dest environement" CreateEnv ${RepModFile} ${BaseDirDestRepo} ${DestDir}
|
||||||
|
action "Link Rpm" RpmLink ${RepModFile} ${BaseDirDestRepo} ${DestDir}
|
||||||
|
action "Copy repo data" RepoModCopy ${RepModFile} ${BaseDirDestRepo} ${DestDir}
|
||||||
|
|
||||||
|
|
||||||
@ -15,16 +15,35 @@ cd ${Wai}
|
|||||||
Exec=$1
|
Exec=$1
|
||||||
|
|
||||||
[[ -z "${Exec}" ]] && help
|
[[ -z "${Exec}" ]] && help
|
||||||
[[ "${Exec}" == "image" ]] && GenAll
|
#[[ "${Exec}" == "image" ]] && GenAll
|
||||||
[[ "${Exec}" == "image-gen" ]] && DockerGen gen
|
#[[ "${Exec}" == "image-gen" ]] && DockerGen gen
|
||||||
[[ "${Exec}" == "image-repo" ]] && DockerGen repo
|
#[[ "${Exec}" == "image-repo" ]] && DockerGen repo
|
||||||
[[ "${Exec}" == "link" ]] && LinkESL
|
#[[ "${Exec}" == "link" ]] && LinkESL
|
||||||
[[ "${Exec}" == "repo" ]] && DockerComposeRun repo
|
#[[ "${Exec}" == "repo" ]] && DockerComposeRun repo
|
||||||
[[ "${Exec}" == "stop" ]] && DockerStop
|
#[[ "${Exec}" == "stop" ]] && DockerStop
|
||||||
[[ "${Exec}" == "gen" ]] && DockerComposeRun gen
|
#[[ "${Exec}" == "gen" ]] && DockerComposeRun gen
|
||||||
[[ "${Exec}" == "run-gen" ]] && DockerConnect gen $2
|
#[[ "${Exec}" == "run-gen" ]] && DockerConnect gen $2
|
||||||
[[ "${Exec}" == "run-repo" ]] && DockerConnect repo $2
|
#[[ "${Exec}" == "run-repo" ]] && DockerConnect repo $2
|
||||||
[[ "${Exec}" == "ps" ]] && DockerPs
|
#[[ "${Exec}" == "import-image" ]] && DockerImport
|
||||||
|
#[[ "${Exec}" == "save-image" ]] && DockerSave
|
||||||
|
#
|
||||||
|
case $Exec in
|
||||||
|
image-gen) DockerGen gen;;
|
||||||
|
image-repo) DockerGen repo;;
|
||||||
|
repo) DockerComposeRun repo;;
|
||||||
|
stop) DockerStop;;
|
||||||
|
gen) DockerComposeRun gen ;;
|
||||||
|
link) LinkESL;;
|
||||||
|
run-gen) DockerConnect gen $2;;
|
||||||
|
run-repo) DockerConnect repo $2;;
|
||||||
|
import-image) DockerImport;;
|
||||||
|
save-image) DockerSave;;
|
||||||
|
*) help
|
||||||
|
esac
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if [[ "${Exec}" == "all" ]]
|
if [[ "${Exec}" == "all" ]]
|
||||||
|
|||||||
0
images/.gitkeep
Normal file
0
images/.gitkeep
Normal file
Loading…
x
Reference in New Issue
Block a user