[GH-ISSUE #47] Support other systems than Ubuntu #39

Open
opened 2026-02-26 03:33:33 +03:00 by kerem · 5 comments
Owner

Originally created by @dani on GitHub (Aug 5, 2018).
Original GitHub issue: https://github.com/laurivosandi/certidude/issues/47

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

Originally created by @dani on GitHub (Aug 5, 2018). Original GitHub issue: https://github.com/laurivosandi/certidude/issues/47 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
Author
Owner

@laurivosandi commented on GitHub (Aug 5, 2018):

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 :)

<!-- gh-comment-id:410539340 --> @laurivosandi commented on GitHub (Aug 5, 2018): 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 :)
Author
Owner

@dani commented on GitHub (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.

<!-- gh-comment-id:410607472 --> @dani commented on GitHub (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.
Author
Owner

@laurivosandi commented on GitHub (Aug 6, 2018):

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

<!-- gh-comment-id:410611009 --> @laurivosandi commented on GitHub (Aug 6, 2018): 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
Author
Owner

@dani commented on GitHub (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.

<!-- gh-comment-id:410611550 --> @dani commented on GitHub (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.
Author
Owner

@Rubueno commented on GitHub (Dec 12, 2018):

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

<!-- gh-comment-id:446637294 --> @Rubueno commented on GitHub (Dec 12, 2018): I would like to see this also supporting RHEL/CentOS.
Sign in to join this conversation.
No labels
pull-request
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/certidude-laurivosandi#39
No description provided.