1、jumpserver安装及配置
2、jenkins实现代码自动部署
==========================================================================
1、jumpserver安装及配置
1.1 JumpServer-1.4.8 docker安装
#环境 mysql-server:5.7.35 #10.0.0.27:3306 redis:4.0.14 #10.0.0.27:6379 jump-server:1.4.8 #10.0.0.100 #在mysql-server创建jumpserver数据库并授权 #注意:数据库字符集必须为utf8,不能为utf8mb4,否则被管理主机无法连通,测试可连接性时卡在:等待任务开始.......... 密码复杂度要求,不能为纯数字 # mysql -uroot -proot -e "create database jumpserver default charset 'utf8'" # mysql -uroot -proot -e "grant all on jumpserver.* to 'jumpsrvuser'@'%' identified by 'jumpsrvpasswd'" #测试登录 # mysql -ujumpsrvuser -pjumpsrvpasswd -h10.0.0.27 #================================================================== #docker安装jumpserver-1.4.8 #拉取镜像 # docker pull jumpserver/jms_all:1.4.8 #生成随机加密秘钥和初始化token # if [ -z ${SECRET_KEY} ]; then \ SECRET_KEY=$(openssl rand -base64 39 | head -c50); \ echo "SECRET_KEY=${SECRET_KEY}" | tee -a ~/.bashrc; \ else \ echo "SECRET_KEY=${SECRET_KEY}"; \ fi SECRET_KEY=uL97iQMZ/0/q3lcy/XgS+FK9HZ3Y36nmIIUm+WFdZ4aOnSEfEx # if [ -z ${BOOTSTRAP_TOKEN} ]; then \ BOOTSTRAP_TOKEN=$(openssl rand -base64 12); \ echo "BOOTSTRAP_TOKEN=${BOOTSTRAP_TOKEN}" | tee -a ~/.bashrc; \ else \ echo BOOTSTRAP_TOKEN=${BOOTSTRAP_TOKEN}; \ fi BOOTSTRAP_TOKEN=ouVuhEj4sQdn+H4j #启动容器 # docker run -d -p 80:80 -p 2222:2222 \ --restart=always \ --name jms_all \ -v /opt/jumpserver:/opt/jumpserver/data/media \ -e SECRET_KEY=uL97iQMZ/0/q3lcy/XgS+FK9HZ3Y36nmIIUm+WFdZ4aOnSEfEx \ -e BOOTSTRAP_TOKEN=ouVuhEj4sQdn+H4j \ -e DB_HOST=10.0.0.27 \ -e DB_PORT=3306 \ -e DB_USER=jumpsrvuser \ -e DB_PASSWORD="jumpsrvpasswd" \ -e DB_NAME=jumpserver \ -e REDIS_HOST=10.0.0.27 \ -e REDIS_PORT=6379 \ -e REDIS_PASSWORD=root \ jumpserver/jms_all:1.4.8 #浏览器访问http://10.0.0.100,用户名admin,密码admin
1.2 JumpServer 管理
#1.用户和组管理 #创建用户 用户管理->用户列表->创建用户->laomao #创建组 用户管理->用户组->创建用户组->dev-group,将用户laomao加入该组 #2.资产管理 #创建管理用户 #管理用户:目标主机上事先存在的具有超级管理员权限的用户 资产管理->管理用户->创建管理用户:root #创建系统用户 #系统用户:用于登录目标主机的用户,如果不存在将自动创建,存在将忽略创建 资产管理->系统用户->创建系统用户:web-user #新建节点 资产管理->资产列表->右击“Default”->新建节点->web-node #创建资产 资产管理->资产列表->创建资产->主机名:web-server-app1 IP:10.0.0.67 协议:ssh 端口:22 系统平台:Linux 管理用户:root 节点:Default/web-node #3.授权管理 #创建授权规则 权限管理->资产授权->创建授权规则->名称:web-server 用户: #授权单个用户或组 组:dev-group 资产:web-server-app1(10.0.0.67) 系统用户:web-user(web-user) #4.命令过滤 #创建命令过滤器 资产管理->命令过滤->创建命令过滤器->名称:dev-acl 资产管理->命令过滤->dev-acl->规则->创建规则->过滤器:dev-acl 类型:命令 内容:init 0 poweroff shutdown reboot init 6 rm 优先级:50 动作:拒绝 #关联系统用户 资产管理->系统用户->web-user->更新->命令过滤器:dev-acl
2、jenkins实现代码自动部署
#环境:gitlab-server 10.0.0.7标签:10.0,14,web,创建,用户,app1,jenkins From: https://www.cnblogs.com/ddjapfpapd/p/17372923.html
jenkins-server 10.0.0.47
real-server 10.0.0.27
real-server 10.0.0.37
#=========================================================================================
#jenkins生成密钥对 # ssh-keygen #将jenkins公钥内容复制到gitlab #gitlab管理员头像->设置->SSH密钥->Key:ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDlfW5g5N5ITj/dHOyzE07AvaJNToAUGaJjrraJYIBEJxXymeXnzHYDW1VTuNUoy8uQ4grdNTjtzzn9gonE6Tr5xteehoSZIEPhkmqCkX/5qH9kHFWDqD5tBoJ8jRpHARhce3tOJYznhqU2XqwBHx4Gr8A4TgmnekaJ8PDte7qxnek8lja0bfjaRD/4VAKSuE2b5XN6gUXNj0f6tOrAeiwkoSkgbFPFQFKi2KCC/FJquNxRIrDU+py0O/84QIZ0OSD5p6ree5AwWL+UqBFrCVjaD/5En5TRdENccX7CKBviHTao9w3szvPzKWvwRT6wQanF8g3lnQkkQB2Ba5d7fla3 root@jenkins-master #将jenkins私钥内容创建为jenkins凭据 #jenkins管理员头像->凭据->jenkins->全局凭据(unrestricted)->添加凭据->类型:SSH Username with private key 范围:全局 Username:root Private Key:-----BEGIN RSA PRIVATE KEY----- MIIEogIBAAKCAQEA5X1uYOTeSE4/3RzssxNOwL2iTU6AFBmiY662iWCARCcV8pnl 58x2A1tVU7jVKMvLkOIK3TU47c85/YKJxOk6+cbXnoaEmSBD4ZJqgpF/+ah/ZBxV g6g+bQaCfI0aRwEYXHt7TiWM54alNl6sAR8eBq/AOE4Jp3pGifDw7Xu6sZ3pPJY2 tG342kQ/+FQCkrhNm+VzeoFFzY9H+rTqwHosJKEpIGxTxUBSotiggvxSarjcUSKw 1PqctDv/OECGdDkg+aeq3nuQMFi/lKgRawlY2g/+RJ+U0XRDXHF+wigb4h02qPcN 7M7z8ylr8EU+sEGpxfIN5Z0JJEAdgWuXe35WtwIDAQABAoIBAA7G8OCUXCvTvhEC 18sAJ0YJ7/WCZITm0aoRifd2m0vIKIWim0c9xyuYKfpmIHOsC8Ocio6L6sqFWXqV eUGQsxd6UlAG4WrqxPQ1dV5K+C6fRvSvTmJX5w0mKijS/SotS+BIozv49wXBicni drjrxAcyMfJuM/jwyrH/LcRc/zyIi1EbZyUEfNAq9KWu2UN5yO7wXmzkHeANYrex o2PBV0OVr4WxarpnxfPjCc94AnBg2zwNFk9AnQEEMlqew1/fM2S86FuSUQi6X7LA h5CCAdZ7iadkiIDf7WOCvEghyqJ1wQUATYztW2QjwJOg//UaWC2HsKropXm5/WnC q9eHD4ECgYEA8z/FUI4Ei1j9dOomP0JWNixV7+ypVWdxq7p+v2c9fCg86jHwUa/K RpZoVe3ExJBROVyzWu9t0gp+OimgJSvXF0znL3d0OhNUJMYDZ64VR/K+876RfBBk yf5sdC+GpAI6zITCcvgVnFttQ9wZszWgjvJsH2om5tQgBG+k7wo2GucCgYEA8YUF yEcxQ3xv/rOzCz3BrCOH6KoUb0v0MO6og9UwXyA/LIcOi63wUq54rmd81mIXV28y xX83HoXBcqBkzwuQL8Z0dwFv4i7EhKhKQVV8x9XDFImP7ENW63LhYj1VWYcMqwFs /Sf9gjWDFuNNDmJ3iIN0kd+ZDYsfbBJ/tK85u7ECgYBBvYpmKvuvbW2Sm3WawyLp oTHYle1t13cxIkX/FLfZRkawRK7eZNQWH7AzCP+U4CwThKo0eWEE0zEqJvXRFfgb o/0XJwGScIbdKWbiLnox57kTxv0quoOC0/Abtnx89t1NSNQEnme4yjzNij6n4GZ0 O7BdDSNWXx4IFOROdkQJIQKBgDtJxFmd4GIIshV8V39y8ZAoSLy8w7dulctNSuDR /MXdTKTJorB3Sn+BhO6LSQH3onM8QOJqkEVV4F8bMKQC2qpftUdheu2zPVqzVUck jTUhLHpmKoZ9IWE7GkjbdZA8rsdr2i1rG7hTGpMLyWa2lVFVs8/7a77/X/9PqznX qfyBAoGAM0Va48OEdnJXaLmeIVWzPWR/zxG5zRCSpOx7Tn9YekxpZ12P/2o9NQyr jQobwTqH5+NiDAmQS4PTC4DRCxKESlDcQpzWaQ/yPGWQ+TObKD2wp+o0Hw1XkyBJ aVBCmaC0+xjzCIub1xHoFBjqz7D4hzItyjx/aDsSBvar7O9u9Qc= -----END RSA PRIVATE KEY----- #配置jenkins对后端web服务器免密 # ssh-copy-id www@10.0.0.27 # ssh-copy-id www@10.0.0.37 #在jenkins创建job #新建任务->名称:test-job 构建一个自由风格的软件项目 test-job->源码管理->Git->Repository URL:git@10.0.0.7:linux39/web-app1.git Credentials:选中root Branches to build:*/master 构建环境->Delete workspace before build starts 构建->执行shell->cd /root/.jenkins/workspace/test-job && tar zcf web-app1.tar.gz ./* scp -r web-app1.tar.gz www@10.0.0.27:/data/tardir scp -r web-app1.tar.gz www@10.0.0.37:/data/tardir ssh www@10.0.0.27 '/etc/init.d/tomcat stop' ssh www@10.0.0.37 '/etc/init.d/tomcat stop' ssh www@10.0.0.27 'rm -rf /data/web-app1/ && tar xf /data/tardir/web-app1.tar.gz -C /data/appdir/web-app1' ssh www@10.0.0.37 'rm -rf /data/web-app1/ && tar xf /data/tardir/web-app1.tar.gz -C /data/appdir/web-app1' ssh www@10.0.0.27 '/etc/init.d/tomcat start' ssh www@10.0.0.37 '/etc/init.d/tomcat start'