Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support other systems than Ubuntu #47

Open
dani opened this issue Aug 5, 2018 · 5 comments
Open

Support other systems than Ubuntu #47

dani opened this issue Aug 5, 2018 · 5 comments

Comments

@dani
Copy link

dani commented Aug 5, 2018

Trying to install Certidude on CentOS 7, in a virtual env. The install went fine, but provisioning fails with

[root@rad ~]# /opt/certidude/bin/certidude provision authority
Traceback (most recent call last):
  File "/opt/certidude/bin/certidude", line 4, in <module>
    __import__('pkg_resources').run_script('certidude==0.1.21', 'certidude')
  File "/opt/certidude/lib/python2.7/site-packages/pkg_resources/__init__.py", line 743, in run_script
    self.require(requires)[0].run_script(script_name, ns)
  File "/opt/certidude/lib/python2.7/site-packages/pkg_resources/__init__.py", line 1498, in run_script
    exec(code, namespace, namespace)
  File "/opt/certidude/lib/python2.7/site-packages/certidude-0.1.21-py2.7.egg/EGG-INFO/scripts/certidude", line 6, in <module>
    entry_point()
  File "/opt/certidude/lib/python2.7/site-packages/click/core.py", line 722, in __call__
    return self.main(*args, **kwargs)
  File "/opt/certidude/lib/python2.7/site-packages/click/core.py", line 697, in main
    rv = self.invoke(ctx)
  File "/opt/certidude/lib/python2.7/site-packages/click/core.py", line 1066, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/opt/certidude/lib/python2.7/site-packages/click/core.py", line 1066, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/opt/certidude/lib/python2.7/site-packages/click/core.py", line 895, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/opt/certidude/lib/python2.7/site-packages/click/core.py", line 535, in invoke
    return callback(*args, **kwargs)
  File "/opt/certidude/lib/python2.7/site-packages/certidude-0.1.21-py2.7.egg/certidude/cli.py", line 1024, in certidude_provision_authority
    assert subprocess.check_output(["/usr/bin/lsb_release", "-cs"]) in (b"trusty\n", b"xenial\n", b"bionic\n"), "Only Ubuntu 16.04 supported at the moment"
  File "/usr/lib64/python2.7/subprocess.py", line 568, in check_output
    process = Popen(stdout=PIPE, *popenargs, **kwargs)
  File "/usr/lib64/python2.7/subprocess.py", line 711, in __init__
    errread, errwrite)
  File "/usr/lib64/python2.7/subprocess.py", line 1327, in _execute_child
    raise child_exception
OSError: [Errno 2] No such file or directory

I only Ubuntu trusty, xenial or bionic supported ? It should be made more clear in the doc in that case

@laurivosandi
Copy link
Owner

Hello, yes currently mainly Ubuntu 16.04 is supported. Provisining involves installing packages etc, so it's highly platform specific. Pull request for adding additional platforms is welcome, but keep in mind pull request should be accompanied eventually by testcases.

Note that Travis only supports 14.04 so I will have to migrate to different CI platform anyway, any recommendations are welcome :)

@dani
Copy link
Author

dani commented Aug 6, 2018

Arf, too bad. Certidude seems too tied to Debian based system, and to nginx too. I probably won't have the needed python-foo to make it working. I just don't quite understand why installing system packages is done here. At least couldn't the additional python modules be added in requirements.txt ? And all the other packages could be simply listed in the doc so we can manually install them as needed.

@laurivosandi
Copy link
Owner

Hi, the amount of components which need to be installed and tied with each other is enormous and there is opportunity to screw up something at every step, see here 500 lines of code which are executed during provision: https://github.com/laurivosandi/certidude/blob/master/certidude/cli.py#L999

Nginx is integral part of Certidude and I don't see how you would run it without, events are pushed to brower via nchan and several other tidbids happen thanks to nginx as well.

It might be realistic to support for example CentOS and the underlying platform but really the easiest route is to set up Ubuntu 16.04 virtual machine or container and set up Certidude there.

You should have separate VM/container anyway due to the security architecture of Certidude

@dani
Copy link
Author

dani commented Aug 6, 2018

I deploy everything in separated VM or container already. But my ansible roles are all EL7+Apache based. Switching a single component to something else is just too much work to worth it.

@Rubueno
Copy link

Rubueno commented Dec 12, 2018

I would like to see this also supporting RHEL/CentOS.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants