shlomizadok / foreman-docker-compose Goto Github PK
View Code? Open in Web Editor NEWDocker compose of Foreman (develop branch), Smart Proxy (develop branch) and Postgres
License: GNU General Public License v3.0
Docker compose of Foreman (develop branch), Smart Proxy (develop branch) and Postgres
License: GNU General Public License v3.0
Ohad Levy has just announced that a "Dockerfile is now included in foreman core" and "a docker-compose ready to use production environment you can deploy". That sounds like exciting news!
We should review that setup, ensure that it's concise, sufficiently simple and complete. And maybe contribute in a way that a warning à la "Please don’t use it for real production environments" is not needed anymore.
If it makes sense we may include a reference on that thing in the README of this repository.
I can successfully bring up the Docker Compose setup (simply running docker-compose up
), then The Foreman shows up successfully on http://localhost after some time. However, I don't see any hint on the (default) password of the admin
user anywhere (and it's not changeme
anymore, as it used to be a few versions ago).
According to current installation instructions the admin password is printed out during the installation. Unfortunately, this helps little when you forget to record that information. Is there an easy way to (re)set a user's password?
Note that there seems to be no foreman-rake
command in any of the built images to run commands to reset the password.
If there is a solution for this it may be a good idea to document this in the README.
Hi all
I'd like to build this project for testing but I have a issue with the mirrors list of the proxy building I think. See below ;
Errors during downloading metadata for repository 'fedora-cisco-openh264':
- Curl error (6): Couldn't resolve host name for https://mirrors.fedoraproject.org/metalink?repo=fedora-cisco-openh264-32&arch=x86_64 [Could not resolve host: mirrors.fedoraproject.org]
Error: Failed to download metadata for repo 'fedora-cisco-openh264': Cannot prepare internal mirrorlist: Curl error (6): Couldn't resolve host name for https://mirrors.fedoraproject.org/metalink?repo=fedora-cisco-openh264-32&arch=x86_64 [Could not resolve host: mirrors.fedoraproject.org]
Repo URL: https://github.com/shlomizadok/foreman-docker-compose.git
SHA: 995b90b
Steps:
Output:
Building proxy
Step 1/9 : FROM fedora:latest
---> d7372e6c93c6
Step 2/9 : LABEL MAINTAINER="[email protected]"
---> Using cache
---> 14ca16b07d10
Step 3/9 : RUN dnf -y update
---> Using cache
---> 3c2056269408
Step 4/9 : RUN dnf -y install ruby{,-devel,gems,-irb} rubygem-{nokogiri,bundler,unf_ext,rdoc} redhat-rpm-config nodejs postgresql-devel git gcc-c++ make hostname && dnf clean all
---> Using cache
---> 89b19d4c3e23
Step 5/9 : WORKDIR /usr/src/app
---> Using cache
---> 4071b07fd07d
Step 6/9 : ENV REPO_URL=https://github.com/theforeman/smart-proxy.git
---> Using cache
---> a63bcee8256a
Step 7/9 : RUN git clone --depth=1 ${REPO_URL} . && mkdir logs
---> Using cache
---> 234dfc3bd595
Step 8/9 : RUN bundle --without bmc:krb5:libvirt:puppet_proxy_legacy:test:windows
---> Running in a9314a38373d
Don't run Bundler as root. Bundler can ask for sudo if it is needed, and
installing your bundle as root will break this application for all non-root
users on this machine.
Your Gemfile lists the gem rsec (>= 0) more than once.
You should probably keep only one of them.
While it's not a problem now, it could cause errors if you change the version of one of them later.
Your Gemfile lists the gem single_test (>= 0) more than once.
You should probably keep only one of them.
While it's not a problem now, it could cause errors if you change the version of one of them later.
Your Gemfile lists the gem rdoc (>= 0) more than once.
You should probably keep only one of them.
While it's not a problem now, it could cause errors if you change the version of one of them later.
The dependency highline (>= 0) will be unused by any of the platforms Bundler is installing for. Bundler is installing for ruby but the dependency is only for x86-mingw32, x64-mingw32. To add those platforms to the bundle, run bundle lock --add-platform x86-mingw32 x64-mingw32
.
The dependency win32-service (>= 0) will be unused by any of the platforms Bundler is installing for. Bundler is installing for ruby but the dependency is only for x86-mingw32, x64-mingw32. To add those platforms to the bundle, run bundle lock --add-platform x86-mingw32 x64-mingw32
.
Fetching gem metadata from https://rubygems.org/.........
Resolving dependencies...
Fetching rake 12.3.2
Installing rake 12.3.2
Using bundler 1.16.1
Fetching coderay 1.1.2
Installing coderay 1.1.2
Fetching concurrent-ruby 1.1.4
Installing concurrent-ruby 1.1.4
Fetching ffi 1.10.0
Installing ffi 1.10.0 with native extensions
Fetching journald-native 1.0.11
Installing journald-native 1.0.11 with native extensions
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
current directory:
/usr/share/gems/gems/journald-native-1.0.11/ext/journald_native
/usr/bin/ruby -r ./siteconf20190309-1-9ax80q.rb extconf.rb
checking for systemd/sd-journal.h... no
checking for -lsystemd... no
checking for sd_journal_print()... no
checking for -lsystemd-journal... no
checking for sd_journal_print()... no
creating extconf.h
creating Makefile
current directory:
/usr/share/gems/gems/journald-native-1.0.11/ext/journald_native
make "DESTDIR=" clean
rm -f
rm -f journald_native.so *.o .bak mkmf.log ..time
current directory:
/usr/share/gems/gems/journald-native-1.0.11/ext/journald_native
make "DESTDIR="
gcc -I. -I/usr/include -I/usr/include/ruby/backward -I/usr/include -I.
-DRUBY_EXTCONF_H="extconf.h" -I/usr/include -fPIC -O2 -g -pipe -Wall
-Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS
-fexceptions -fstack-protector-strong -grecord-gcc-switches
-specs=/usr/lib/rpm/redhat/redhat-hardened-cc1
-specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -mtune=generic
-fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC
-std=c11 -m64 -o journald_dummy.o -c journald_dummy.c
In file included from journald_dummy.c:1:
journald_native.h:37:14: error: #error Cannot include <systemd/sd-journal.h>.
Please use linux version with systemd-journal installed
#error Cannot include <systemd/sd-journal.h>. Please use linux
version with systemd-journal installed
^~~~~
journald_native.h:41:14: error: #error Required function sd_journal_print is
missing
#error Required function sd_journal_print is missing
^~~~~
journald_native.h:45:14: error: #error Required function sd_journal_sendv is
missing
#error Required function sd_journal_sendv is missing
^~~~~
journald_native.h:49:14: error: #error Required function sd_journal_perror is
missing
#error Required function sd_journal_perror is missing
^~~~~
journald_native.h:55:18: fatal error: systemd/sd-journal.h: No such file or
directory
#include <systemd/sd-journal.h>
^~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make: *** [Makefile:243: journald_dummy.o] Error 1
make failed, exit code 2
Gem files will remain installed in /usr/share/gems/gems/journald-native-1.0.11
for inspection.
Results logged to /usr/lib64/gems/ruby/journald-native-1.0.11/gem_make.out
An error occurred while installing journald-native (1.0.11), and Bundler cannot
continue.
Make sure that gem install journald-native -v '1.0.11'
succeeds before
bundling.
In Gemfile:
logging-journald was resolved to 2.0.3, which depends on
journald-logger was resolved to 2.0.4, which depends on
journald-native
ERROR: Service 'proxy' failed to build: The command '/bin/sh -c bundle --without bmc:krb5:libvirt:puppet_proxy_legacy:test:windows' returned a non-zero code: 5
Just a technical note on Docker Compose:
When you use a version <= 1.14 on a freshly cloned repository docker-compose up
fails, because it can only mount Docker volumes into existing directories. Newer versions of Docker Compose do create the non-existing directories automatically.
This is easily fixed locally, though: (if you don't want to or can't upgrade to a newer version of Compose)
$ mkdir pgdata assets webpack
Having build sections in our Docker Compose file makes this project a bit inflexible to use.
For example, you cannot easily exchange just a single image (as in pulling it from a registry), giving the target system the chance to quickly update just a single service; instead, you have to rebuild the image from source on your target host.
image:
directives.In an ideal world we would re-use "official" images from the The Foreman project. However, there don't seem to be any, and the related Forklift project doesn't seem to be interested in pursuing a compatible route. Which is very unfortunate.
While this repo was very useful, it took me a while to figure out why adding BMC was not as straightforward as expected.
The steps I took trying to add BMC:
freeipmi
to dnf install
command in the Dockerfilebundle --without ...
bmc.yml
file to config/settings.d/
This resulted in the following error during startup
Errors detected on startup, see log for details. Exiting: cannot load such file -- rubyipmi
even though the rubyipmi gem was installed.
The fix was simply changing the command to bundle exec /usr/src/app/bin/smart-proxy
in the docker-compose file. So it might be worth changing the command or mentioning the issue in "known issues"
I believe it would be useful to other community members as well, keeping it at theforeman org probably will increase visibility of this effort?
thanks
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.