让Jumpserver适配Coreos的过程

栏目: Python · 发布时间: 8年前

内容简介:让Jumpserver适配Coreos的过程

因为我手里的Vps服务器都是coreos操作系统,为了方便使用,我也想搭建一个jumpserver来做跳板和堡垒。查阅了一下公开资料,也没有提到jumpserver是否支持coreos,所以就自力更生来进行适配。以下就是经过各种坑之后,顺利完成适配的过程。

首先需要修改两个py文件, ansible_api.pyconnect.py 。因为coreos默认不提供 python 环境,所以首先需要安装python。但即便安装成功之后,python也不再PATH当中,所以需要手动指定python路径。也就是在 ansible_api.py 增加 ansible_python_interpreter 属性:

my_host.set_variable('ansible_python_interpreter', 'PATH=/opt/bin:$PATH python')

我把python安装到/opt/bin了,所以写的就是这个路径。其次,创建用户之后,用户登录jumpserver时,提供找不到 django 模块,所以需要在 connect.py 中增加 django 路径。 sys.path.append('/usr/local/lib/python2.7/site-packages') 。这个可能是我个人环境的问题,有可能不具有普遍性。

为了方便部署,我将此封装成了 docker 镜像。 vikings/jumpserver:0.3.2-rc 。如果使用docker部署jumpserver,执行以下service:

[Unit]
Description=Jumpserver Service For JMS  
After=docker.service  
Requires=mysql.service

[Service]
TimeoutStartSec=0

Restart=always  
ExecStartPre=-/usr/bin/docker pull vikings/jumpserver:0.3.2-rc  
ExecStartPre=-/usr/bin/docker rm jumpserver  
ExecStart=/usr/bin/docker run   --name jumpserver \  
                -v /etc/localtime:/etc/localtime \
                -v /root/jms/jumpserver.conf:/jumpserver/jumpserver.conf \
                -p 2222:22 \
                -p 8888:80 \
                --link mysql:mysql \
                vikings/jumpserver:0.3.2-rc
ExecStop=/usr/bin/docker kill jumpserver

[Install]
WantedBy=multi-user.target

我将数据选择持久化到 mysql 当中,所以启动jumpserver之前,首先创建mysql数据库。

因为已经封装成了镜像,所以jumpsever服务端如此操作就可以完成了。 但在coreos那里还需要做一些配合工作。

首先是创建一个具有sudo权限的非root用户。

useradd -p "*" -U -m user -G sudo  
visudo -f /etc/sudoers.d/user  
#添加以下内容
user ALL=(ALL) NOPASSWD: ALL

# 以user用户身份执行下面操作
vi /home/user/authorized_keys #添加公钥  
chmod 600 /home/user/authorized_keys  
sudo systemctl restart sshd

然后在/etc创建一个文件 touch /etc/sudoers ,jumpserver在推送系统用户时会检查是否存在此文件.可能是当初没有考虑到coreos的差异吧,如果没有此文件,会推送失败。因此手工创建一个文件。

当然coreos当中还需要安装python环境,推荐使用ansible方案。 在任意一台具有python环境并且安装了ansible的机器上面执行下面命令:

ansible-galaxy install defunctzombie.coreos-bootstrap -p ./roles

编辑hosts文件

[coreos]
xxxxxx<ip/域名>

# 为coreos组中的节点定义Ansbile参数
[coreos:vars]
ansible_ssh_user=user  
ansible_ssh_private_key_file=私钥路径  
ansible_python_interpreter="PATH=/home/user/bin:$PATH python"

编辑bootstrap.yml文件:

- hosts: coreos
  gather_facts: False
  roles:
    - defunctzombie.coreos-bootstrap

注意gather_facts一定要是False,否则在初始化收集信息时失败就会直接退出。

执行命令 ansible-playbook -i hosts bootstrap.yml ,第一次执行时,有可能会出现错误。再执行一次,应该就会安装成功。

安装完成之后,登录到coreos。将python拷贝到/opt/bin当中。

经过如此折腾之后,完整的jumpserver适配coreos过程就算搞定了。后面就是登录jumpserver进行配置。 配置过程这里就不写了,中规中矩的按照官网上面的步骤做就可以了。


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Ordering Disorder

Ordering Disorder

Khoi Vinh / New Riders Press / 2010-12-03 / USD 29.99

The grid has long been an invaluable tool for creating order out of chaos for designers of all kinds—from city planners to architects to typesetters and graphic artists. In recent years, web designers......一起来看看 《Ordering Disorder》 这本书的介绍吧!

随机密码生成器
随机密码生成器

多种字符组合密码

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具