Compare commits
14 Commits
V1.4-final
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
| e99de9cdff | |||
| 61ff6ac0b5 | |||
| 660c9d13ff | |||
| 7129a0849a | |||
| 661f3808ec | |||
| 9c52e84f7e | |||
| f3a9e27e70 | |||
| 3e60e83d74 | |||
| 1bfbfcf4a6 | |||
| 47b2d87487 | |||
| 66d98e5400 | |||
| d4a41cf128 | |||
| 862f52fb53 | |||
| b9e3a01c81 |
10
.env
10
.env
@ -2,9 +2,13 @@
|
|||||||
# Repository generator
|
# Repository generator
|
||||||
|
|
||||||
# Version of image
|
# Version of image
|
||||||
RepoVers=1
|
RepoVers=2
|
||||||
# Centos Version
|
# Centos Version
|
||||||
CentOsVersion=7.9.2009
|
#CentOsVersion=centos:7.9.2009
|
||||||
|
CentOsVersion=oraclelinux:8.7
|
||||||
|
Cible=oraclelinux
|
||||||
|
VersionCible=8.7
|
||||||
|
PackageManager=dnf
|
||||||
# Sync repo script
|
# Sync repo script
|
||||||
Run=/usr/local/bin/sync.sh
|
Run=/usr/local/bin/sync.sh
|
||||||
# Sync arg script
|
# Sync arg script
|
||||||
@ -17,7 +21,7 @@ RunArg=del
|
|||||||
# Esl compilator
|
# Esl compilator
|
||||||
|
|
||||||
# Version of image
|
# Version of image
|
||||||
GenVers=1
|
GenVers=2
|
||||||
# Programme local directory
|
# Programme local directory
|
||||||
ProgrammeDir=/data/GIT/ESL_PRODUIT
|
ProgrammeDir=/data/GIT/ESL_PRODUIT
|
||||||
# Repositories Directory
|
# Repositories Directory
|
||||||
|
|||||||
2
.gitignore
vendored
2
.gitignore
vendored
@ -1,4 +1,6 @@
|
|||||||
Dockerfile
|
Dockerfile
|
||||||
data/
|
data/
|
||||||
docker-compose.yml
|
docker-compose.yml
|
||||||
|
cible
|
||||||
|
images
|
||||||
|
|
||||||
|
|||||||
BIN
ESL-devenv.pdf
Normal file
BIN
ESL-devenv.pdf
Normal file
Binary file not shown.
176
README.md
176
README.md
@ -3,24 +3,51 @@
|
|||||||
## Struct
|
## Struct
|
||||||
|
|
||||||
```
|
```
|
||||||
.
|
|
||||||
├── bin
|
|
||||||
│ ├── empty.sh
|
|
||||||
│ ├── run.sh
|
|
||||||
│ └── sync.sh
|
|
||||||
├── define.conf -> .env
|
|
||||||
├── docker-compose.yml
|
|
||||||
├── Dockerfile
|
|
||||||
├── generate_env.sh
|
|
||||||
├── README.md
|
|
||||||
└── Template
|
|
||||||
├── docker-compose.yml.gen
|
|
||||||
├── docker-compose.yml.repo
|
|
||||||
├── Dockerfile.gen
|
|
||||||
├── Dockerfile.repo
|
|
||||||
└── function
|
|
||||||
|
|
||||||
2 directories, 13 files
|
|_> bin
|
||||||
|
| |_> common.fct
|
||||||
|
| |_> empty.sh
|
||||||
|
| |_> esl.fct
|
||||||
|
| |_> gen.sh
|
||||||
|
| |_> repo.sh
|
||||||
|
| |_> run.sh
|
||||||
|
|_> cible -> /data/GIT/ESL_PRODUIT-ol8/
|
||||||
|
|_> data
|
||||||
|
| |_> cible
|
||||||
|
| |_> log
|
||||||
|
| | |_> repo
|
||||||
|
| |_> repo
|
||||||
|
| |_> EPEL
|
||||||
|
| |_> OLD
|
||||||
|
| |_> OracleLinux
|
||||||
|
|_> define.conf -> .env
|
||||||
|
|_> doc
|
||||||
|
| |_> 0_define.png
|
||||||
|
| |_> 1_help.png
|
||||||
|
| |_> 2_image.png
|
||||||
|
| |_> 3_image-gen.png
|
||||||
|
| |_> 4_image-repo.png
|
||||||
|
| |_> 5_repo.png
|
||||||
|
| |_> 6_gen-connect.png
|
||||||
|
| |_> 7_gen.png
|
||||||
|
| |_> 8_all.png
|
||||||
|
| |_> ESL-devenv.pdf
|
||||||
|
| |_> tree.png
|
||||||
|
|_> docker-compose.yml
|
||||||
|
|_> Dockerfile
|
||||||
|
|_> generate_env.sh
|
||||||
|
|_> README.md
|
||||||
|
|_> Template
|
||||||
|
|_> docker-compose.yml.gen
|
||||||
|
|_> docker-compose.yml.repo
|
||||||
|
|_> Dockerfile.gen.centos
|
||||||
|
|_> Dockerfile.gen.oraclelinux
|
||||||
|
|_> Dockerfile.repo
|
||||||
|
|_> Dockerfile.repo.centos
|
||||||
|
|_> Dockerfile.repo.oraclelinux
|
||||||
|
|_> function
|
||||||
|
|
||||||
|
11 directories, 31 files
|
||||||
```
|
```
|
||||||
|
|
||||||
## Help
|
## Help
|
||||||
@ -28,17 +55,15 @@
|
|||||||
```
|
```
|
||||||
devbase-astierg@[navalgroup-astierg]- ~ : $ /data/DOCKER/centos79repo/generate_env.sh
|
devbase-astierg@[navalgroup-astierg]- ~ : $ /data/DOCKER/centos79repo/generate_env.sh
|
||||||
|
|
||||||
/data/DOCKER/centos79repo/generate_env.sh [image/repo/esl/all]
|
./generate_env.sh [image/image-gen/image-repo/repo/gen/run-repo/run-gen]
|
||||||
|
|
||||||
* image : Generate docker images
|
* image : Generate docker images
|
||||||
* image-gen : Generate docker image for esl compilator
|
* image-gen : Generate docker image for esl compilator
|
||||||
* image-repo : Generate docker image for repository sync
|
* image-repo : Generate docker image for repository sync
|
||||||
* repo : start docker compose and generate repositories
|
* repo : start docker compose and generate repositories
|
||||||
* gen : start docker compose and generarte esl
|
* gen : start docker compose and generarte esl
|
||||||
* all : Do everything
|
* run-gen : Connect and run bash on instance gen
|
||||||
* run-gen : Connect and run bash on instance gen
|
* run-repo : Connect and run bash on instance repo
|
||||||
* run-repo : Connect and run bash on instance repo
|
|
||||||
* stop : stop all docker image
|
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
@ -54,9 +79,13 @@ devbase-astierg@[navalgroup-astierg]- ~ : $ cat /data/DOCKER/centos79repo/define
|
|||||||
# Version of image
|
# Version of image
|
||||||
RepoVers=1
|
RepoVers=1
|
||||||
# Centos Version
|
# Centos Version
|
||||||
CentOsVersion=7.9.2009
|
#CentOsVersion=centos:7.9.2009
|
||||||
|
CentOsVersion=oraclelinux:8.6
|
||||||
|
Cible=oraclelinux
|
||||||
|
VersionCible=8.6
|
||||||
|
PackageManager=dnf
|
||||||
# Sync repo script
|
# Sync repo script
|
||||||
Run=/bin/sync.sh
|
Run=/usr/local/bin/sync.sh
|
||||||
# Sync arg script
|
# Sync arg script
|
||||||
# * del : delete all local repo
|
# * del : delete all local repo
|
||||||
# * debug : only start docker instance
|
# * debug : only start docker instance
|
||||||
@ -67,53 +96,13 @@ RunArg=del
|
|||||||
# Esl compilator
|
# Esl compilator
|
||||||
|
|
||||||
# Version of image
|
# Version of image
|
||||||
GenVers=1
|
GenVers=2
|
||||||
# Programme local directory
|
# Programme local directory
|
||||||
ProgrammeDir=/data/GIT/ESL_PRODUIT
|
ProgrammeDir=/data/GIT/ESL_PRODUIT
|
||||||
# Repositories Directory
|
# Repositories Directory
|
||||||
RepoDir=./data/repo
|
RepoDir=./data/repo
|
||||||
# If auto gen script esl Else leave empty and only start docker instance
|
# If auto gen script esl Else leave empty and only start docker instance
|
||||||
GenScript=/data/gen.sh
|
GenScript=/usr/local/bin/gen.sh
|
||||||
```
|
|
||||||
|
|
||||||
## Build Everything.
|
|
||||||
|
|
||||||
```
|
|
||||||
devbase-astierg@[navalgroup-astierg]- ~ : $ time /data/DOCKER/centos79repo/generate_env.sh all
|
|
||||||
Delete Dockerfile ... : OK
|
|
||||||
Delte old images gen ... : OK
|
|
||||||
generate Dockerfile gen ... : OK
|
|
||||||
Generate gen Docker image ... : OK
|
|
||||||
|
|
||||||
------ Log Compil -----------
|
|
||||||
/tmp/BuildDocker-gen.log
|
|
||||||
-----------------------------
|
|
||||||
|
|
||||||
Delete Dockerfile ... : OK
|
|
||||||
Delte old images repo ... : OK
|
|
||||||
generate Dockerfile repo ... : OK
|
|
||||||
Generate repo Docker image ... : OK
|
|
||||||
|
|
||||||
------ Log Compil -----------
|
|
||||||
/tmp/BuildDocker-repo.log
|
|
||||||
-----------------------------
|
|
||||||
|
|
||||||
Starting DOCKER repo ... : OK
|
|
||||||
|
|
||||||
--------- Log Esl -----------
|
|
||||||
/tmp/RunDocker-repo.log
|
|
||||||
-----------------------------
|
|
||||||
|
|
||||||
Starting DOCKER gen ... : OK
|
|
||||||
|
|
||||||
--------- Log Esl -----------
|
|
||||||
/tmp/RunDocker-gen.log
|
|
||||||
-----------------------------
|
|
||||||
|
|
||||||
|
|
||||||
real 29m43,812s
|
|
||||||
user 0m3,405s
|
|
||||||
sys 0m0,579s
|
|
||||||
```
|
```
|
||||||
|
|
||||||
## Debug / Function
|
## Debug / Function
|
||||||
@ -134,45 +123,24 @@ DockerComposeRun
|
|||||||
GenAll
|
GenAll
|
||||||
```
|
```
|
||||||
|
|
||||||
## Real life
|
## cible
|
||||||
|
|
||||||
## define
|
To create an ESL you have to make a symbolic link of the root project in cible in the root path of ESL-devenv
|
||||||
|
|
||||||

|
```
|
||||||
|
[14:17:48]─[devbase-astierg@astierg-tools]─[~/data/git/naval/ESL-devenv] ln -s /data/GIT/ESL_PRODUIT-ol8/ ./cible
|
||||||
|
```
|
||||||
|
|
||||||
## help
|
## Repo oracle
|
||||||
|
|
||||||

|
The repository list is:
|
||||||
|
|
||||||
## image
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
## image-gen
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
## image-repo
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
## repo
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
## gen-connect
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
## gen
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
## all
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
|
* EPEL
|
||||||
|
* baseos (latest)
|
||||||
|
* codeready
|
||||||
|
* appstream
|
||||||
|
|
||||||
|
Size : ~ 33Go
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
1
README.pdf
Symbolic link
1
README.pdf
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
ESL-devenv.pdf
|
||||||
@ -1,19 +0,0 @@
|
|||||||
FROM centos:centos7
|
|
||||||
LABEL maintainer='Guillaume Astier Ruiz'
|
|
||||||
|
|
||||||
ENV os='centos'
|
|
||||||
ENV osversion='7'
|
|
||||||
ENV ESL-TOOLS=gen
|
|
||||||
|
|
||||||
RUN yum update -y
|
|
||||||
|
|
||||||
RUN yum install -y perl perl-Business-ISBN perl-Business-ISBN-Data perl-Carp perl-Compress-Raw-Bzip2 perl-Compress-Raw-Zlib perl-Data-Dumper perl-Data-OptList perl-Digest perl-Digest-MD5 perl-Encode perl-Encode-Locale perl-Error perl-Exporter perl-ExtUtils-Install perl-ExtUtils-MakeMaker perl-ExtUtils-Manifest perl-ExtUtils-ParseXS perl-File-Listing perl-File-Path perl-File-Temp perl-Filter perl-Font-AFM perl-Getopt-Long perl-HTML-Format perl-HTML-Parser perl-HTML-Tagset perl-HTML-Tree perl-HTTP-Cookies perl-HTTP-Daemon perl-HTTP-Date perl-HTTP-Message perl-HTTP-Negotiate perl-HTTP-Tiny perl-IO-Compress perl-IO-HTML perl-IO-Socket-IP perl-IO-Socket-SSL perl-IO-stringy perl-LWP-MediaTypes perl-Module-Implementation perl-Module-Runtime perl-Mozilla-CA perl-Net-HTTP perl-Net-LibIDN perl-Net-SSLeay perl-Package-Generator perl-PadWalker perl-Params-Util perl-Params-Validate perl-PathTools perl-Pod-Escapes perl-Pod-Perldoc perl-Pod-Simple perl-Pod-Usage perl-Scalar-List-Utils perl-Socket perl-Storable perl-Sub-Exporter perl-Sub-Install perl-TermReadKey perl-Test-Harness perl-Text-ParseWords perl-Thread-Queue perl-Time-HiRes perl-Time-Local perl-TimeDate perl-Tk perl-Try-Tiny perl-URI perl-WWW-RobotRules perl-XML-Catalog perl-XML-DOM perl-XML-Dumper perl-XML-Filter-BufferText perl-XML-Grove perl-XML-Handler-YAWriter perl-XML-LibXML perl-XML-LibXSLT perl-XML-NamespaceSupport perl-XML-Parser perl-XML-RegExp perl-XML-SAX perl-XML-SAX-Base perl-XML-SAX-Writer perl-XML-Simple perl-XML-TokeParser perl-XML-TreeBuilder perl-XML-Twig perl-XML-Writer perl-XML-XPath perl-XML-XPathEngine perl-constant perl-devel perl-libs perl-libwww-perl perl-libxml-perl perl-macros perl-parent perl-podlators perl-srpm-macros perl-threads perl-threads-shared
|
|
||||||
RUN yum install -y basesystem binutils bzip2 cpp createrepo dejavu-fonts-common dejavu-sans-fonts deltarpm dwz elfutils elfutils-devel elfutils-libelf-devel fontconfig fontpackages-filesystem gcc gdb gdbm-devel genisoimage glibc-devel glibc-headers gpm-libs groff-base keyutils-libs-devel libX11 libX11-common libXau libXft libXrender libcom_err-devel libdb-devel libjpeg-turbo libmpc libselinux-devel libsepol-devel libusal libverto-devel libxcb libxml2-python lm_sensors-devel lm_sensors-libs mailcap mpfr ncurses-base net-tools openssl-devel pcre-devel popt-devel pyparsing python-deltarpm python-gobject-base python-srpm-macros redhat-rpm-config rpm-build rpm-devel rsync strace tcp_wrappers-devel tree unzip vim-common vim-enhanced vim-filesystem xz-devel zip zlib-devel nginx openssh-clients
|
|
||||||
|
|
||||||
|
|
||||||
RUN yum install -y net-snmp
|
|
||||||
|
|
||||||
COPY ./bin/run.sh /usr/local/bin/run.sh
|
|
||||||
RUN chmod 777 /usr/local/bin/run.sh
|
|
||||||
CMD /usr/local/bin/run.sh ${GenScript}
|
|
||||||
|
|
||||||
21
Template/Dockerfile.gen.centos
Normal file
21
Template/Dockerfile.gen.centos
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
#FROM centos:centos7
|
||||||
|
FROM ${Cible}:${VersionCible}
|
||||||
|
LABEL maintainer='Guillaume Astier Ruiz'
|
||||||
|
|
||||||
|
ENV os="${Cible}"
|
||||||
|
ENV osversion="${VersionCible}"
|
||||||
|
ENV ESL-TOOLS=repo
|
||||||
|
ENV TERM=xterm
|
||||||
|
|
||||||
|
RUN ${PackageManager} update -y
|
||||||
|
|
||||||
|
RUN ${PackageManager} install -y perl perl-Business-ISBN perl-Business-ISBN-Data perl-Carp perl-Compress-Raw-Bzip2 perl-Compress-Raw-Zlib perl-Data-Dumper perl-Data-OptList perl-Digest perl-Digest-MD5 perl-Encode perl-Encode-Locale perl-Error perl-Exporter perl-ExtUtils-Install perl-ExtUtils-MakeMaker perl-ExtUtils-Manifest perl-ExtUtils-ParseXS perl-File-Listing perl-File-Path perl-File-Temp perl-Filter perl-Font-AFM perl-Getopt-Long perl-HTML-Format perl-HTML-Parser perl-HTML-Tagset perl-HTML-Tree perl-HTTP-Cookies perl-HTTP-Daemon perl-HTTP-Date perl-HTTP-Message perl-HTTP-Negotiate perl-HTTP-Tiny perl-IO-Compress perl-IO-HTML perl-IO-Socket-IP perl-IO-Socket-SSL perl-IO-stringy perl-LWP-MediaTypes perl-Module-Implementation perl-Module-Runtime perl-Mozilla-CA perl-Net-HTTP perl-Net-LibIDN perl-Net-SSLeay perl-Package-Generator perl-PadWalker perl-Params-Util perl-Params-Validate perl-PathTools perl-Pod-Escapes perl-Pod-Perldoc perl-Pod-Simple perl-Pod-Usage perl-Scalar-List-Utils perl-Socket perl-Storable perl-Sub-Exporter perl-Sub-Install perl-TermReadKey perl-Test-Harness perl-Text-ParseWords perl-Thread-Queue perl-Time-HiRes perl-Time-Local perl-TimeDate perl-Tk perl-Try-Tiny perl-URI perl-WWW-RobotRules perl-XML-Catalog perl-XML-DOM perl-XML-Dumper perl-XML-Filter-BufferText perl-XML-Grove perl-XML-Handler-YAWriter perl-XML-LibXML perl-XML-LibXSLT perl-XML-NamespaceSupport perl-XML-Parser perl-XML-RegExp perl-XML-SAX perl-XML-SAX-Base perl-XML-SAX-Writer perl-XML-Simple perl-XML-TokeParser perl-XML-TreeBuilder perl-XML-Twig perl-XML-Writer perl-XML-XPath perl-XML-XPathEngine perl-constant perl-devel perl-libs perl-libwww-perl perl-libxml-perl perl-macros perl-parent perl-podlators perl-srpm-macros perl-threads perl-threads-shared
|
||||||
|
RUN ${PackageManager} install -y basesystem binutils bzip2 cpp createrepo dejavu-fonts-common dejavu-sans-fonts deltarpm dwz elfutils elfutils-devel elfutils-libelf-devel fontconfig fontpackages-filesystem gcc gdb gdbm-devel genisoimage glibc-devel glibc-headers gpm-libs groff-base keyutils-libs-devel libX11 libX11-common libXau libXft libXrender libcom_err-devel libdb-devel libjpeg-turbo libmpc libselinux-devel libsepol-devel libusal libverto-devel libxcb libxml2-python lm_sensors-devel lm_sensors-libs mailcap mpfr ncurses-base net-tools openssl-devel pcre-devel popt-devel pyparsing python-deltarpm python-gobject-base python-srpm-macros redhat-rpm-config rpm-build rpm-devel rsync strace tcp_wrappers-devel tree unzip vim-common vim-enhanced vim-filesystem xz-devel zip zlib-devel nginx openssh-clients
|
||||||
|
|
||||||
|
|
||||||
|
RUN ${PackageManager} install -y net-snmp
|
||||||
|
|
||||||
|
COPY ./bin/run.sh /usr/local/bin/run.sh
|
||||||
|
RUN chmod 777 /usr/local/bin/run.sh
|
||||||
|
CMD /usr/local/bin/run.sh ${GenScript}
|
||||||
|
|
||||||
39
Template/Dockerfile.gen.oraclelinux
Normal file
39
Template/Dockerfile.gen.oraclelinux
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
#FROM centos:centos7
|
||||||
|
FROM ${Cible}:${VersionCible}
|
||||||
|
LABEL maintainer='Guillaume Astier Ruiz'
|
||||||
|
|
||||||
|
ENV os="${Cible}"
|
||||||
|
ENV osversion="${VersionCible}"
|
||||||
|
ENV ESL-TOOLS=repo
|
||||||
|
ENV TERM=xterm
|
||||||
|
|
||||||
|
RUN ${PackageManager} update -y
|
||||||
|
|
||||||
|
RUN ${PackageManager} install -y perl perl-Carp perl-Compress-Raw-Bzip2 perl-Compress-Raw-Zlib perl-Data-Dumper perl-Data-OptList perl-Digest perl-Digest-MD5 perl-Encode perl-Encode-Locale perl-Error perl-Exporter perl-ExtUtils-Install perl-ExtUtils-MakeMaker perl-ExtUtils-Manifest perl-ExtUtils-ParseXS perl-File-Listing perl-File-Path perl-File-Temp perl-Filter perl-Getopt-Long perl-HTML-Parser perl-HTML-Tagset perl-HTTP-Cookies perl-HTTP-Date perl-HTTP-Message perl-HTTP-Negotiate perl-HTTP-Tiny perl-IO-Compress perl-IO-HTML perl-IO-Socket-IP perl-IO-Socket-SSL perl-LWP-MediaTypes perl-Module-Runtime perl-Mozilla-CA perl-Net-HTTP perl-Net-SSLeay perl-Package-Generator perl-Params-Util perl-PathTools perl-Pod-Escapes perl-Pod-Perldoc perl-Pod-Simple perl-Pod-Usage perl-Scalar-List-Utils perl-Socket perl-Storable perl-Sub-Exporter perl-Sub-Install perl-TermReadKey perl-Test-Harness perl-Text-ParseWords perl-Thread-Queue perl-Time-HiRes perl-Time-Local perl-TimeDate perl-Tk perl-Try-Tiny perl-URI perl-WWW-RobotRules perl-XML-Catalog perl-XML-LibXML perl-XML-NamespaceSupport perl-XML-Parser perl-XML-SAX perl-XML-SAX-Base perl-XML-Simple perl-XML-TokeParser perl-XML-XPath perl-constant perl-devel perl-libs perl-libwww-perl perl-libxml-perl perl-macros perl-parent perl-podlators perl-srpm-macros perl-threads perl-threads-shared
|
||||||
|
RUN ${PackageManager} install -y basesystem binutils bzip2 cpp createrepo dejavu-fonts-common dejavu-sans-fonts dwz elfutils elfutils-devel elfutils-libelf-devel fontconfig fontpackages-filesystem gcc gdb gdbm-devel genisoimage glibc-devel glibc-headers gpm-libs groff-base keyutils-libs-devel libX11 libX11-common libXau libXft libXrender libcom_err-devel libdb-devel libjpeg-turbo libmpc libselinux-devel libsepol-devel libusal libverto-devel libxcb lm_sensors-devel lm_sensors-libs mailcap mpfr ncurses-base net-tools openssl-devel pcre-devel popt-devel python3 python-srpm-macros redhat-rpm-config rpm-build rpm-devel rsync strace tree unzip vim-common vim-enhanced vim-filesystem xz-devel zip zlib-devel nginx openssh-clients
|
||||||
|
|
||||||
|
|
||||||
|
RUN ${PackageManager} install -y net-snmp
|
||||||
|
RUN ${PackageManager} install epel-release -y
|
||||||
|
RUN ${PackageManager} install screen modulemd-tools gettext net-snmp-devel -y
|
||||||
|
RUN mkdir /nfs
|
||||||
|
RUN ln -s /data/repo /nfs/distributions
|
||||||
|
|
||||||
|
COPY ./bin/ /usr/local/bin/
|
||||||
|
RUN chmod 777 /usr/local/bin/run.sh
|
||||||
|
|
||||||
|
|
||||||
|
RUN groupadd esl -g 1000
|
||||||
|
#RUN useradd -s /bin/bash -g 1000 -u 1000 -p "$(/usr/bin/openssl passwd -1 esl)" esl
|
||||||
|
RUN useradd -s /bin/bash -g 1000 -u 1000 esl
|
||||||
|
RUN mkdir /data
|
||||||
|
RUN mkdir -p /tmp/log/
|
||||||
|
RUN chown -R esl:esl /data
|
||||||
|
RUN chown -R esl:esl /tmp/log
|
||||||
|
RUN mkdir -p /nfs/DEVBASE/ESL/
|
||||||
|
RUN ln -s /data/repo /nfs/DEVBASE/ESL/distributions
|
||||||
|
USER esl
|
||||||
|
|
||||||
|
|
||||||
|
RUN echo /usr/local/bin/run.sh ${GenScript}
|
||||||
|
CMD /usr/local/bin/run.sh ${GenScript}
|
||||||
@ -1,19 +1,38 @@
|
|||||||
FROM centos:${CentOsVersion}
|
#FROM centos:${CentOsVersion}
|
||||||
|
#FROM ${CentOsVersion}
|
||||||
|
FROM ${Cible}:${VersionCible}
|
||||||
LABEL maintainer='Guillaume Astier Ruiz'
|
LABEL maintainer='Guillaume Astier Ruiz'
|
||||||
|
|
||||||
ENV os='centos'
|
ENV os="${Cible}"
|
||||||
ENV osversion='7'
|
ENV osversion="${VersionCible}"
|
||||||
ENV ESL-TOOLS=repo
|
ENV ESL-TOOLS=repo
|
||||||
|
ENV TERM=xterm
|
||||||
|
|
||||||
RUN yum update -y
|
RUN ${PackageManager} update -y
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
RUN yum install yum-utils createrepo vim wget -y
|
RUN ${PackageManager} install yum-utils createrepo vim wget -y
|
||||||
RUN yum install epel-release -y
|
RUN ${PackageManager} install epel-release -y
|
||||||
COPY ./bin/sync.sh /usr/local/bin/sync.sh
|
RUN ${PackageManager} install screen -y
|
||||||
RUN chmod 755 /usr/local/bin/sync.sh
|
#COPY ./bin/repo.sh /usr/local/bin/repo.sh
|
||||||
COPY ./bin/empty.sh /usr/local/bin/empty.sh
|
COPY ./bin/ /usr/local/bin/
|
||||||
RUN chmod 755 /usr/local/bin/empty.sh
|
#RUN chmod 755 /usr/local/bin/repo.sh
|
||||||
|
RUN chmod 755 /usr/local/bin/*
|
||||||
|
#COPY ./bin/empty.sh /usr/local/bin/empty.sh
|
||||||
|
#RUN chmod 755 /usr/local/bin/empty.sh
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
RUN groupadd esl -g 1000
|
||||||
|
#RUN useradd -s /bin/bash -g 1000 -u 1000 -p "$(/usr/bin/openssl passwd -1 esl)" esl
|
||||||
|
RUN useradd -s /bin/bash -g 1000 -u 1000 esl
|
||||||
|
RUN mkdir /data
|
||||||
|
RUN mkdir -p /tmp/log/
|
||||||
|
RUN chown -R esl:esl /data
|
||||||
|
RUN chown -R esl:esl /tmp/log
|
||||||
|
USER esl
|
||||||
|
|
||||||
|
|
||||||
CMD ${Run} ${RunArg}
|
CMD ${Run} ${RunArg}
|
||||||
|
#ENTRYPOINT [ "${Run}" "${RunArg}" ]
|
||||||
|
|||||||
38
Template/Dockerfile.repo.centos
Normal file
38
Template/Dockerfile.repo.centos
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
#FROM centos:${CentOsVersion}
|
||||||
|
#FROM ${CentOsVersion}
|
||||||
|
FROM ${Cible}:${VersionCible}
|
||||||
|
LABEL maintainer='Guillaume Astier Ruiz'
|
||||||
|
|
||||||
|
ENV os="${Cible}"
|
||||||
|
ENV osversion="${VersionCible}"
|
||||||
|
ENV ESL-TOOLS=repo
|
||||||
|
ENV TERM=xterm
|
||||||
|
|
||||||
|
RUN ${PackageManager} update -y
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
RUN ${PackageManager} install yum-utils createrepo vim wget -y
|
||||||
|
RUN ${PackageManager} install epel-release -y
|
||||||
|
RUN ${PackageManager} install screen -y
|
||||||
|
#COPY ./bin/repo.sh /usr/local/bin/repo.sh
|
||||||
|
COPY ./bin/ /usr/local/bin/
|
||||||
|
#RUN chmod 755 /usr/local/bin/repo.sh
|
||||||
|
RUN chmod -R 755 /usr/local/bin/
|
||||||
|
#COPY ./bin/empty.sh /usr/local/bin/empty.sh
|
||||||
|
#RUN chmod 755 /usr/local/bin/empty.sh
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
RUN groupadd esl -g 1000
|
||||||
|
#RUN useradd -s /bin/bash -g 1000 -u 1000 -p "$(/usr/bin/openssl passwd -1 esl)" esl
|
||||||
|
RUN useradd -s /bin/bash -g 1000 -u 1000 esl
|
||||||
|
RUN mkdir /data
|
||||||
|
RUN mkdir -p /tmp/log/
|
||||||
|
RUN chown -R esl:esl /data
|
||||||
|
RUN chown -R esl:esl /tmp/log
|
||||||
|
USER esl
|
||||||
|
|
||||||
|
|
||||||
|
CMD ${Run} ${RunArg}
|
||||||
|
#ENTRYPOINT [ "${Run}" "${RunArg}" ]
|
||||||
42
Template/Dockerfile.repo.oraclelinux
Normal file
42
Template/Dockerfile.repo.oraclelinux
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
#FROM centos:${CentOsVersion}
|
||||||
|
#FROM ${CentOsVersion}
|
||||||
|
FROM ${Cible}:${VersionCible}
|
||||||
|
LABEL maintainer='Guillaume Astier Ruiz'
|
||||||
|
|
||||||
|
ENV os="${Cible}"
|
||||||
|
ENV osversion="${VersionCible}"
|
||||||
|
ENV ESL-TOOLS=repo
|
||||||
|
ENV TERM=xterm
|
||||||
|
|
||||||
|
RUN ${PackageManager} update -y
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
RUN ${PackageManager} install yum-utils createrepo vim wget -y
|
||||||
|
RUN ${PackageManager} install epel-release -y
|
||||||
|
RUN ${PackageManager} install screen -y
|
||||||
|
#COPY ./bin/repo.sh /usr/local/bin/repo.sh
|
||||||
|
RUN echo COPY
|
||||||
|
COPY ./bin/ /usr/local/bin/
|
||||||
|
#RUN chmod 755 /usr/local/bin/repo.sh
|
||||||
|
RUN chmod -R 755 /usr/local/bin/
|
||||||
|
#COPY ./bin/empty.sh /usr/local/bin/empty.sh
|
||||||
|
#RUN chmod 755 /usr/local/bin/empty.sh
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
RUN groupadd esl -g 1000
|
||||||
|
#RUN useradd -s /bin/bash -g 1000 -u 1000 -p "$(/usr/bin/openssl passwd -1 esl)" esl
|
||||||
|
RUN useradd -s /bin/bash -g 1000 -u 1000 esl
|
||||||
|
RUN mkdir /data
|
||||||
|
RUN mkdir -p /tmp/log/
|
||||||
|
RUN chown -R esl:esl /data
|
||||||
|
RUN chown -R esl:esl /tmp/log
|
||||||
|
RUN mkdir -p /nfs/DEVBASE/ESL/
|
||||||
|
RUN chown -R esl:esl /nfs
|
||||||
|
RUN ln -s /data/repo /nfs/DEVBASE/ESL/distributions
|
||||||
|
USER esl
|
||||||
|
|
||||||
|
|
||||||
|
CMD ${Run} ${RunArg}
|
||||||
|
#ENTRYPOINT [ "${Run}" "${RunArg}" ]
|
||||||
@ -6,5 +6,6 @@ services:
|
|||||||
image: esl-repo:${RepoVers}
|
image: esl-repo:${RepoVers}
|
||||||
volumes:
|
volumes:
|
||||||
- ./data:/data
|
- ./data:/data
|
||||||
|
- ./data/log:/tmp/log
|
||||||
- ./bin:/usr/local/bin
|
- ./bin:/usr/local/bin
|
||||||
|
|
||||||
|
|||||||
@ -1,3 +1,4 @@
|
|||||||
|
#!/bin/bash
|
||||||
TestEnv() {
|
TestEnv() {
|
||||||
|
|
||||||
Check=$(which $1 2> /dev/null)
|
Check=$(which $1 2> /dev/null)
|
||||||
@ -21,20 +22,30 @@ Res() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
LinkESL() {
|
||||||
|
|
||||||
|
while [[ ! -d ${DirLink} ]]
|
||||||
|
do
|
||||||
|
read -p "Absolute path of ESL Programe or ESL Product : " DirLink
|
||||||
|
done
|
||||||
|
[[ -L $(dirname $0)/cible ]] && rm -f $(dirname $0)/cible &> /dev/null
|
||||||
|
echo -n "ESL symbolic link : "
|
||||||
|
ln -s ${DirLink} $(dirname $0)/cible &> /dev/null && echo OK || echo FAILED
|
||||||
|
}
|
||||||
|
|
||||||
help () {
|
help () {
|
||||||
echo "
|
echo "
|
||||||
$0 [image/repo/esl/all]
|
$0 [image-gen/image-repo/link/repo/gen/run-repo/run-gen/import-image/save-image]
|
||||||
|
|
||||||
* $(tput setaf 3)image $(tput sgr0): Generate docker images
|
|
||||||
* $(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
|
||||||
|
* $(tput setaf 5)link $(tput sgr0): Create symbolic link to ESL Programe or Porduct
|
||||||
* $(tput setaf 4)repo $(tput sgr0): start docker compose and generate repositories
|
* $(tput setaf 4)repo $(tput sgr0): start docker compose and generate repositories
|
||||||
* $(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 1)all $(tput sgr0): Do everything
|
|
||||||
* $(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 2)stop $(tput sgr0): stop all docker image
|
* $(tput setaf 6)import-image $(tput sgr0): Import last backuped docker image in ./images/
|
||||||
* $(tput setaf 5)ps $(tput sgr0): print all docker image
|
* $(tput setaf 6)save-image $(tput sgr0): backup docker image in ./images/
|
||||||
|
|
||||||
"
|
"
|
||||||
exit
|
exit
|
||||||
@ -54,8 +65,11 @@ DeleteFile() {
|
|||||||
|
|
||||||
DockerConnect() {
|
DockerConnect() {
|
||||||
|
|
||||||
Inst=$(docker ps|grep $(dirname .)_esl\-$1 | awk '{print $NF}')
|
User=esl
|
||||||
docker exec -ti ${Inst} bash
|
[[ "$2" == "root" ]] && User='root'
|
||||||
|
Inst=$(docker ps|grep "esl-$1" | awk '{print $NF}')
|
||||||
|
[[ -L $(realpath $(dirname $0))/cible ]] && Cible="-v $(realpath $(dirname $0))/cible:/data/cible"
|
||||||
|
[[ -z "${Inst}" ]] && docker run -ti -v $(realpath $(dirname $0))/data:/data -v $(realpath $(dirname $0))/data/log:/log ${Cible} --hostname $1 -u ${User} esl\-${1}:2 bash || docker exec -ti -u $User ${Inst} bash
|
||||||
|
|
||||||
}
|
}
|
||||||
DockerPs() {
|
DockerPs() {
|
||||||
@ -67,7 +81,7 @@ DockerPs() {
|
|||||||
|
|
||||||
|
|
||||||
DockerStop() {
|
DockerStop() {
|
||||||
for DockerRun in $(docker ps|grep $(dirname .)_esl\- | awk '{print $NF}')
|
for DockerRun in $(docker ps|grep esl\- | awk '{print $NF}')
|
||||||
do
|
do
|
||||||
echo -n "Stop $DockerRun ... :"
|
echo -n "Stop $DockerRun ... :"
|
||||||
docker stop $DockerRun &> /dev/null
|
docker stop $DockerRun &> /dev/null
|
||||||
@ -84,7 +98,7 @@ DeleteImg () {
|
|||||||
|
|
||||||
DockerGen() {
|
DockerGen() {
|
||||||
DeleteImg $1
|
DeleteImg $1
|
||||||
echo -n "generate Dockerfile $1 ... : "
|
echo -n "generate Dockerfile $1 $Cible... : "
|
||||||
source define.conf
|
source define.conf
|
||||||
while read line
|
while read line
|
||||||
do
|
do
|
||||||
@ -94,7 +108,7 @@ DockerGen() {
|
|||||||
else
|
else
|
||||||
echo $line
|
echo $line
|
||||||
fi
|
fi
|
||||||
done < Template/Dockerfile.$1 > Dockerfile
|
done < Template/Dockerfile.${1}.${Cible} > Dockerfile
|
||||||
Res $?
|
Res $?
|
||||||
|
|
||||||
echo -n "Generate $1 Docker image ... : "
|
echo -n "Generate $1 Docker image ... : "
|
||||||
@ -122,8 +136,11 @@ DockerComposeRun () {
|
|||||||
[[ -f ${Wai}/docker-compose.yml ]] && rm -f ${Wai}/docker-compose.yml
|
[[ -f ${Wai}/docker-compose.yml ]] && rm -f ${Wai}/docker-compose.yml
|
||||||
[[ "$2" == "Print" ]] && Print="-d" || Print=""
|
[[ "$2" == "Print" ]] && Print="-d" || Print=""
|
||||||
cp ${Wai}/Template/docker-compose.yml.$1 ${Wai}/docker-compose.yml
|
cp ${Wai}/Template/docker-compose.yml.$1 ${Wai}/docker-compose.yml
|
||||||
echo -n "Starting DOCKER $1 ... : "
|
echo "Log is : log/${1} - use tail -f ./log/$1"
|
||||||
yes | docker-compose up ${Print} --remove-orphans 2>&1 | tee /tmp/RunDocker-${1}.log &> /dev/null
|
[[ -L $(realpath $(dirname $0))/cible ]] && Cible="-v $(realpath $(dirname $0))/cible:/data/cible"
|
||||||
|
docker run -ti -v $(realpath $(dirname $0))/data:/data -v $(realpath $(dirname $0))/data/log:/tmp/log ${Cible} -u esl --hostname $1 esl\-${1}:2 /usr/local/bin/${1}.sh
|
||||||
|
#yes | docker-compose up ${Print} --remove-orphans 1>&1 | tee /tmp/RunDocker-${1}.log &> /dev/null
|
||||||
|
##yes | docker-compose up ${Print} --remove-orphans
|
||||||
Res $?
|
Res $?
|
||||||
echo "
|
echo "
|
||||||
--------- Log Esl -----------
|
--------- Log Esl -----------
|
||||||
@ -133,9 +150,39 @@ 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 () {
|
|
||||||
DockerGen gen
|
|
||||||
DockerGen repo
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#GenAll () {
|
||||||
|
# DockerGen gen
|
||||||
|
# DockerGen repo
|
||||||
|
#}
|
||||||
|
|
||||||
|
|||||||
79
bin/common.fct
Normal file
79
bin/common.fct
Normal file
@ -0,0 +1,79 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
MoveCurr(){
|
||||||
|
cpt=$1
|
||||||
|
if [[ $cpt -ge 4 ]]
|
||||||
|
then
|
||||||
|
cpt=1
|
||||||
|
else
|
||||||
|
((cpt++))
|
||||||
|
fi
|
||||||
|
case $1 in
|
||||||
|
1) echo '/' $cpt;;
|
||||||
|
2) echo '-' $cpt;;
|
||||||
|
3) echo '\' $cpt;;
|
||||||
|
4) echo '|' $cpt;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Download (){
|
||||||
|
Rep=$1
|
||||||
|
RepoName=$2
|
||||||
|
cpt=1
|
||||||
|
#tput ed
|
||||||
|
|
||||||
|
tput sc
|
||||||
|
while [[ ! -z $(ps axf| grep reposync | grep -v grep) ]]
|
||||||
|
do
|
||||||
|
read -r Curr cpt <<< $(MoveCurr $cpt)
|
||||||
|
Orpm=${Rpm}
|
||||||
|
OrpmName=$(basename ${Orpm:-/}| sed 's/-[0-9]/|/g' | cut -d"|" -f1)
|
||||||
|
Rpm=$(find $Rep -type f -name "*.rpm" -printf "%T@ %p\n" | sort -n | cut -d' ' -f 2- | tail -n 1)
|
||||||
|
RpmName=$(basename ${Rpm:-/}| sed 's/-[0-9]/|/g' | cut -d"|" -f1)
|
||||||
|
Txt="{$RepoName} Downloading ${RpmName:-/}"
|
||||||
|
if [[ "${RpmName}" == "$OrpmName" ]] && [[ "$RpmName" != "/" ]]
|
||||||
|
then
|
||||||
|
RpmSize=$(du -s $Rpm|awk '{print $1}')
|
||||||
|
OrpmSize=$(du -s $Orpm|awk '{print $1}')
|
||||||
|
[[ "$RpmSize" -eq "$OrpmSize" ]] && Txt="{$RepoName} Sync - RPM Signature"
|
||||||
|
fi
|
||||||
|
[[ "$RpmName" == "/" ]] && Txt="{$RepoName} Syncing metadata"
|
||||||
|
|
||||||
|
tput rc; tput el
|
||||||
|
echo -ne "\r[${Curr}] - $Txt\r"
|
||||||
|
|
||||||
|
|
||||||
|
sleep 0.5
|
||||||
|
done
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
Action() {
|
||||||
|
echo -n "$1 : "
|
||||||
|
shift
|
||||||
|
$* &> /dev/null
|
||||||
|
if [[ $? -eq 0 ]]
|
||||||
|
then
|
||||||
|
echo "$(tput setaf 2)OK$(tput sgr0)"
|
||||||
|
else
|
||||||
|
echo "$(tput setaf 1)FAILED$(tput sgr0)"
|
||||||
|
|
||||||
|
fi
|
||||||
|
Tot=$((Tot+$1))
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
WhileTrue() {
|
||||||
|
|
||||||
|
while true
|
||||||
|
do
|
||||||
|
sleep 1
|
||||||
|
done
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
80
bin/esl.fct
Normal file
80
bin/esl.fct
Normal file
@ -0,0 +1,80 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
function centos() {
|
||||||
|
|
||||||
|
Repo=epel
|
||||||
|
Action "Get epel" reposync -l --newest-only --delete --downloadcomps --download-metadata --repoid=${Repo} --download_path=/data/repo/ 2>&1 | tee /data/log/get_${Repo}.log &> /dev/null
|
||||||
|
Action "Move SeanAps EPEL : " mkdir -p /data/repo/EPEL/el7/x86_64/Packages ; for var in $(find /data/repo/epel/ -name *rpm -type f) ; do mv $var /data/repo/EPEL/el7/x86_64/Packages; done
|
||||||
|
Action "Create repo epel : " cd /data/repo/EPEL/el7/x86_64/ && createrepo -v /data/repo/EPEL/el7/x86_64/ 2>&1 | tee /data/log/CreateRepo_${Repo}.log &> /dev/null
|
||||||
|
Action "Get OS BASE : " mkdir -p /data/repo/tmp/ && cd /data/repo/tmp/ && wget -r -p -k http://mirror.centos.org/centos/7.9.2009/os/x86_64/ 2>&1 | tee /data/log/get_base.log
|
||||||
|
|
||||||
|
for var in $(find .| grep index.html) ;do rm -f $var;done
|
||||||
|
mkdir -p /data/repo/CentOS/7.9/os/
|
||||||
|
mv /data/repo/tmp/mirror.centos.org/centos/7.9.2009/os/x86_64/ /data/repo/CentOS/7.9/os/
|
||||||
|
|
||||||
|
rm -rf /data/repo/tmp/*
|
||||||
|
|
||||||
|
Action "Get OS updates : " cd /data/repo/tmp/ && wget -r -p -k http://mirror.centos.org/centos/7.9.2009/updates/x86_64/ 2>&1 | tee /data/log/get_updates.log &> /dev/null
|
||||||
|
}
|
||||||
|
|
||||||
|
RunScreen (){
|
||||||
|
Name=$1
|
||||||
|
shift
|
||||||
|
Data="$*"
|
||||||
|
screen -dmS $Name ${Data}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
LinkEpel() {
|
||||||
|
|
||||||
|
[[ ! -L $2 ]] && ln -s ol${Majeur}_developer_EPEL x86_64
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function oraclelinux () {
|
||||||
|
|
||||||
|
Rand=repo${RANDOM}
|
||||||
|
Majeur=$(echo ${osversion} | cut -d"." -f1)
|
||||||
|
Mineur=$(echo ${osversion} | cut -d"." -f2)
|
||||||
|
|
||||||
|
test -L /data/repo/EPEL/x86_64 && Action "Delete Old Link" rm /data/repo/EPEL/x86_64
|
||||||
|
Action "Create Dir ${osversion}" mkdir -p /data/repo/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
|
||||||
|
Action "Get in ${osversion} EPEL" cd /data/repo/EPEL/ol${Majeur}
|
||||||
|
Action "Link SeaNaps environement EPEL" LinkEpel ol${Majeur}_developer_EPEL x86_64
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
test -L /data/repo/OracleLinux/OL8/codeready/builder/x86_64 && Action "Delete Old Link" rm /data/repo/OracleLinux/OL8/codeready/builder/x86_64
|
||||||
|
Action "Create Dir ${osversion}" mkdir -p /data/repo/OracleLinux/OL8/codeready/builder/
|
||||||
|
RunScreen codeready dnf reposync -g --newest-only --exclude='*.src' -p /data/repo/OracleLinux/OL8/codeready/builder --download-metadata --repoid=ol${Majeur}_codeready_builder
|
||||||
|
Download /data/repo/OracleLinux/OL8 codeready
|
||||||
|
Action "Get in ${osversion} codeready" cd /data/repo/OracleLinux/OL8/codeready/builder
|
||||||
|
Action "Link SeaNaps environement codeready" ln -s ol${Majeur}_codeready_builder x86_64
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
test -L /data/repo/OracleLinux/${osversion}/appstream/x86_64 && Action "Delete Old Link" rm /data/repo/OracleLinux/${osversion}/appstream/x86_64
|
||||||
|
Action "Create Dir ${osversion}" mkdir -p /data/repo/OracleLinux/${osversion}/appstream/
|
||||||
|
RunScreen appstream dnf reposync -g --newest-only --exclude='*.src' -p /data/repo/OracleLinux/${osversion}/appstream/ --download-metadata --repoid=ol${Majeur}_appstream
|
||||||
|
Download /data/repo/OracleLinux/${osversion}/appstream/ appstream
|
||||||
|
Action "Get in ${osversion} appstream" cd /data/repo/OracleLinux/${osversion}/appstream/
|
||||||
|
Action "Link SeaNaps environement appstream" ln -s ol${Majeur}_appstream x86_64
|
||||||
|
|
||||||
|
|
||||||
|
test -L /data/repo/OracleLinux/${osversion}/baseos/latest/x86_64 && Action "Delete Old Link" rm /data/repo/OracleLinux/${osversion}/baseos/latest/x86_64
|
||||||
|
|
||||||
|
Action "Create Dir ${osversion}" mkdir -p /data/repo/OracleLinux/${osversion}/baseos/latest
|
||||||
|
RunScreen baseos dnf reposync -g --newest-only --exclude='*.src' -p /data/repo/OracleLinux/${osversion}/baseos/latest --download-metadata --repoid=ol${Majeur}_baseos_latest
|
||||||
|
#RunScreen baseos dnf reposync -g --newest-only --exclude='*.src' -p /data/repo/OracleLinux/${osversion}/baseos/latest --download-metadata --repoid=ol${Majeur}_u${Mineur}_baseos_base
|
||||||
|
Download /data/repo/OracleLinux/${osversion}/baseos baseos
|
||||||
|
Action "Get in ${osversion} baseos" cd /data/repo/OracleLinux/${osversion}/baseos/latest
|
||||||
|
#Action "Link SeaNaps environement baseOS" ln -s ol${Majeur}_u${Mineur}_baseos_base x86_64
|
||||||
|
Action "Link SeaNaps environement baseOS" ln -s ol${Majeur}_baseos_latest x86_64
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
22
bin/gen.sh
22
bin/gen.sh
@ -2,22 +2,34 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
usage() {
|
||||||
|
|
||||||
|
echo "No cible is present in /data/"
|
||||||
|
exit
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
RmEnv() {
|
RmEnv() {
|
||||||
rm -Rf ${Wai}/ESL/.Prefetch/
|
rm -Rf ${Wai}/ESL/.Prefetch/
|
||||||
|
rm -Rf ${Wai}/ESL/ESL_RPMS/.checksum
|
||||||
rm -Rf ${Wai}/Workspace/*
|
rm -Rf ${Wai}/Workspace/*
|
||||||
}
|
}
|
||||||
|
|
||||||
Wai=/data/
|
Wai=/data/cible
|
||||||
|
|
||||||
|
[[ ! -d ${Wai}/ESL ]] && usage
|
||||||
|
|
||||||
|
|
||||||
cd ${Wai}/ESL/GenELMU/
|
#cd ${Wai}/ESL/GenELMU/
|
||||||
source ${Wai}/ESL/setenv.sh
|
#source ${Wai}/ESL/setenv.sh
|
||||||
|
|
||||||
[[ $1 == "del" ]] && RmEnv
|
#[[ $1 == "del" ]] && RmEnv
|
||||||
|
RmEnv
|
||||||
|
|
||||||
[[ "$ESL_PROJECT" != "ESL" ]] && ProductElemu="i"
|
[[ "$ESL_PROJECT" != "ESL" ]] && ProductElemu="i"
|
||||||
|
|
||||||
yes | ./ESL_Gen_ELMUs.sh -p${ProductElemu}
|
#yes | ./ESL_Gen_ELMUs.sh -p${ProductElemu}
|
||||||
|
|
||||||
cd ${Wai}/ESL/GenOS/
|
cd ${Wai}/ESL/GenOS/
|
||||||
./ESL_Generate.sh
|
./ESL_Generate.sh
|
||||||
|
|||||||
25
bin/repo.sh
Executable file
25
bin/repo.sh
Executable file
@ -0,0 +1,25 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
|
||||||
|
source $(dirname $0)/esl.fct
|
||||||
|
source $(dirname $0)/common.fct
|
||||||
|
|
||||||
|
|
||||||
|
Tot=0
|
||||||
|
[[ $1 == "debug" ]] && WhileTrue
|
||||||
|
|
||||||
|
[[ $1 == "del" ]] && rm -Rf /data/repo /data/log
|
||||||
|
|
||||||
|
[[ ! -d /data/log ]] && mkdir -p /data/log
|
||||||
|
[[ ! -d /data/repo ]] && mkdir -p /data/repo
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
case ${os} in
|
||||||
|
centos) centos |tee /tmp/log/repo;;
|
||||||
|
oraclelinux) oraclelinux |tee /tmp/log/repo;;
|
||||||
|
*) echo "Nothing is possible ..."; Tot=666;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
|
||||||
|
exit $Tot
|
||||||
77
bin/sync.sh
77
bin/sync.sh
@ -1,77 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Res() {
|
|
||||||
if [[ $1 -eq 0 ]]
|
|
||||||
then
|
|
||||||
echo "$(tput setaf 2)OK$(tput sgr0)"
|
|
||||||
else
|
|
||||||
echo "$(tput setaf 1)FAILED$(tput sgr0)"
|
|
||||||
fi
|
|
||||||
Tot=$((Tot+$1))
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
WhileTrue() {
|
|
||||||
|
|
||||||
while true
|
|
||||||
do
|
|
||||||
sleep 1
|
|
||||||
done
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
Tot=0
|
|
||||||
[[ $1 == "debug" ]] && WhileTrue
|
|
||||||
|
|
||||||
[[ $1 == "del" ]] && rm -Rf /data/repo /data/log
|
|
||||||
|
|
||||||
[[ ! -d /data/log ]] && mkdir -p /data/log
|
|
||||||
[[ ! -d /data/repo ]] && mkdir -p /data/repo
|
|
||||||
|
|
||||||
|
|
||||||
echo -n "Get epel : "
|
|
||||||
Repo=epel
|
|
||||||
reposync -l --newest-only --delete --downloadcomps --download-metadata --repoid=${Repo} --download_path=/data/repo/ 2>&1 | tee /data/log/get_${Repo}.log &> /dev/null
|
|
||||||
Res $?
|
|
||||||
|
|
||||||
echo -n "Move SeanAps EPEL : "
|
|
||||||
mkdir -p /data/repo/EPEL/el7/x86_64/Packages &&
|
|
||||||
for var in $(find /data/repo/epel/ -name *rpm -type f) ; do mv $var /data/repo/EPEL/el7/x86_64/Packages; done
|
|
||||||
Res $?
|
|
||||||
|
|
||||||
|
|
||||||
echo -n "Create repo epel : "
|
|
||||||
cd /data/repo/EPEL/el7/x86_64/
|
|
||||||
createrepo -v /data/repo/EPEL/el7/x86_64/ 2>&1 | tee /data/log/CreateRepo_${Repo}.log &> /dev/null
|
|
||||||
Res $?
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
echo -n "Get OS BASE : "
|
|
||||||
mkdir /data/repo/tmp/
|
|
||||||
cd /data/repo/tmp/
|
|
||||||
wget -r -p -k http://mirror.centos.org/centos/7.9.2009/os/x86_64/ 2>&1 | tee /data/log/get_base.log &> /dev/null
|
|
||||||
Res $?
|
|
||||||
|
|
||||||
for var in $(find .| grep index.html) ;do rm -f $var;done
|
|
||||||
mkdir -p /data/repo/CentOS/7.9/os/
|
|
||||||
mv /data/repo/tmp/mirror.centos.org/centos/7.9.2009/os/x86_64/ /data/repo/CentOS/7.9/os/
|
|
||||||
|
|
||||||
rm -rf /data/repo/tmp/*
|
|
||||||
|
|
||||||
echo -n "Get OS updates : "
|
|
||||||
cd /data/repo/tmp/
|
|
||||||
wget -r -p -k http://mirror.centos.org/centos/7.9.2009/updates/x86_64/ 2>&1 | tee /data/log/get_updates.log &> /dev/null
|
|
||||||
Res $?
|
|
||||||
|
|
||||||
for var in $(find . | grep index.html) ;do rm -f $var;done
|
|
||||||
mkdir -p /data/repo/CentOS/7.9/updates
|
|
||||||
mv /data/repo/tmp/mirror.centos.org/centos/7.9.2009/updates/x86_64/ /data/repo/CentOS/7.9/updates/
|
|
||||||
rm -Rf /data/repo/tmp/
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
exit $Tot
|
|
||||||
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}
|
||||||
|
|
||||||
|
|
||||||
BIN
doc/ESL-devenv.pdf
Normal file
BIN
doc/ESL-devenv.pdf
Normal file
Binary file not shown.
BIN
doc/tree.png
Normal file
BIN
doc/tree.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 36 KiB |
@ -15,15 +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}" == "repo" ]] && DockerComposeRun repo
|
#[[ "${Exec}" == "link" ]] && LinkESL
|
||||||
[[ "${Exec}" == "stop" ]] && DockerStop
|
#[[ "${Exec}" == "repo" ]] && DockerComposeRun repo
|
||||||
[[ "${Exec}" == "gen" ]] && DockerComposeRun gen
|
#[[ "${Exec}" == "stop" ]] && DockerStop
|
||||||
[[ "${Exec}" == "run-gen" ]] && DockerConnect gen
|
#[[ "${Exec}" == "gen" ]] && DockerComposeRun gen
|
||||||
[[ "${Exec}" == "run-repo" ]] && DockerConnect repo
|
#[[ "${Exec}" == "run-gen" ]] && DockerConnect gen $2
|
||||||
[[ "${Exec}" == "ps" ]] && DockerPs
|
#[[ "${Exec}" == "run-repo" ]] && DockerConnect repo $2
|
||||||
|
#[[ "${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