整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

3、Jenkins持续集成之基础配置

3、Jenkins持续集成之基础配置

置ansible实现无密钥交互

安装阿里云YUM源码
[root@node1 ~]# cat <<EOF>>/etc/yum.repos.d/epel.repo
[epel]
name=epel for aliyun
baseurl=https://mirrors.aliyun.com/epel/7/x86_64/
enabled=1
gpgcheck=0
[os]
name=os for aliyun
baseurl=https://mirrors.aliyun.com/centos/7/os/x86_64/
enabled=1
gpgcheck=0    
EOF
[root@node1 ~]$ yum clean all
[root@node1 ~]$ yum makecache
安装ansible
[cce@node1 ~]$ yum list |grep ansible*
ansible.noarch                           2.3.0.0-3.el7                 epel     
ansible-doc.noarch                       2.3.0.0-3.el7                 epel     
ansible-inventory-grapher.noarch         2.3.2-1.el7                   epel     
ansible-lint.noarch                      3.4.9-1.el7                   epel     
ansible-openstack-modules.noarch         0-20140902git79d751a.el7      epel     
ansible-review.noarch                    0.13.0-2.el7                  epel     
kubernetes-ansible.noarch                0.6.0-0.1.gitd65ebd5.el7      epel     
python2-ansible-tower-cli.noarch         3.1.3-1.el7                   epel     
[root@node1 ~]$ yum install -y ansible
利用jenkins密钥对实现ansible免密分发

[jenkins@node1 ~]$ ls .ssh/
id_rsa  id_rsa.pub  known_hosts    
将ansible所有权给我们的jenkins用户
[root@node1 ~]# chown -R jenkins:jenkins /etc/ansible/
将两台客户端服务器加入我们的ansible认真hosts表里,并归纳为test组
[jenkins@node1 ~]# tail -3 /etc/ansible/hosts 
[jenkins]
192.168.1.72
192.168.1.73
编写简单的YML来实现以上创建步骤(我们的jenkins用户也需要开通sudo权限来完成一些例如服务重启的工作)
[root@node1 ~]# cat key.yml

---
- hosts: jenkins
  remote_user: root
  tasks:
        - name: Create User
          user: name=jenkins
        - name: grant permissions
          shell: usermod -aG wheel jenkins
        - name: Mkdir Key Director
          file: path=/home/jenkins/.ssh mode=0700 owner=jenkins group=jenkins state=directory
        - name: Copy Public Key
          copy: src=/home/jenkins/.ssh/id_rsa.pub dest=/home/jenkins/.ssh/authorized_keys owner=jenkins group=jenkins mode=600

配置ansible支持无密钥登录
[ops@node1 ~]$ egrep "^[^#\[]" /etc/ansible/ansible.cfg
inventory=/etc/ansible/hosts
remote_tmp=~/.ansible/tmp
local_tmp=~/.ansible/tmp
forks=5
poll_interval=15
sudo_user=root
executable=/bin/bash
private_key_file=/home/jenkins/.ssh/id_rsa
connect_timeout=30
connect_retries=30
connect_interval=1      
切换至jenkins用户测试无密钥登录是否正常

配置我们的node2作为我们的web前端

[root@node2 ~]# yum install mysql mysql-devel httpd httpd-devel php mariadb-server php-mysql
配置测试页面查看我们的PHP环境是否安装成功
[root@node2 ~]# cat /var/www/html/index.php
<?php
phpinfo();
?>
[root@node2 ~]# systemctl start httpd
[root@node2 ~]# systemctl start mariadb


[root@node2 ~]# yum install mysql mysql-devel httpd httpd-devel php mariadb-server php-mysql
配置测试页面查看我们的PHP环境是否安装成功
[root@node2 ~]# cat /var/www/html/index.php
<?php
phpinfo();
?>
[root@node2 ~]# systemctl start httpd
[root@node2 ~]# systemctl start mariadb


配置我们的node3作为备份服务器

[root@node3 ~]# mkdir -pv /data/www/sourcecode/ 
[root@node3 ~]# chown -R jenkins:jenkins /data/www/

配置我们的jenkins

首先安装以下插件:
Environment Injector Plugin
Safe Restart Plugin
Javadoc Plugin
jQuery plugin
Extended Choice Parameter Plug-In
Pre SCM BuildStep Plugin
Robot Framework plugin
Git Parameter Plug-In

创建一个自由风格的软件项目

配置参数化构建

配置GIT参数

配置构建后的操作

配置环境

[jenkins@node1 ~]$ sudo mkdir /data/www/sourcecode/  #此处为代码存放目录
[jenkins@node1 ~]$ sudo chown -R jenkins:jenkins /data/www/ #将属主修改为jenkins以免出现权限问题

配置分发脚本

[jenkins@node1 ~]$ cat /usr/local/scripts/local-dev-jenkins_test-deploy.sh
#!/bin/bash

### check 
if [ ! -n "$1" ];then
        echo "Please enter your file's name."
        exit 10
fi

name=$1
datetime=$2
destination='jenkins'
##此处的destination是72和73,73作为备份服务器所以也需要推送,72则需要部署上线操作
ansible ${destination} -m copy -a "src=/data/www/sourcecode/${name}.tar.gz dest=/data/www/jenkins_packet/" && \ 
ansible 192.168.1.72 -m shell -a "sudo nohup bash -x /usr/local/scripts/local-dev-jenkins_test-deploy.sh ${name} ${datetime}"  ##nohup在tomcat需要重启的时候必须使用,否则会出现tomcat被杀掉起不起来的情况

配置我们的72和73

配置73的源代码存放目录
[root@node3 ~]# mkdir /data/www/jenkins_packet/
[root@node3 ~]# chown -R jenkins:jenkins /data/www/
配置72的代码存放目录和部署脚本
[root@node2 ~]# mkdir /data/www/jenkins_packet/
[root@node2 ~]# chown -R jenkins:jenkins /data/www/
[root@node2 ~]# mkdir /usr/local/scripts/
[root@node2 scripts]# cat  /usr/local/scripts/local-dev-jenkins_test-deploy.sh 
#!/bin/bash
#
name=${1}.tar.gz
SITE_NAME=${1}
date_time=$2

if [ -d /tmp/${SITE_NAME} ];then
        rm -rf /tmp/${SITE_NAME} 
fi
mkdir /tmp/${SITE_NAME}

rm -rf /var/www/html_bak
#systemctl stop httpd
if [ -d /var/www/html ];then
        mv /var/www/html /var/www/html_bak
fi

tar -zxf /data/www/jenkins_packet/${name} -C /tmp/${SITE_NAME}

mv -f /tmp/${SITE_NAME} /var/www/html
chown -R apache:apache /var/www/html
#systemctl start httpd  ##PHP环境无需重启

正式发布我们的代码

查看node2部署情况

查看node3备份情况

除关机命令

rm -rf /sbin/shutdown

rm -rf /sbin/init

rm -rf /sbin/reboot

查看有哪些用户

cat /etc/passwd

删除用户 禁用用户

passwd -l username # 禁用用户

userdel usernmae # 删除用户

# 也可编辑/etc/passwd 文件,在不要的用户前加注释

iptables防火墙

# 先看要求开放的端口,如:21,22,23,80,3306

# 因为靶机上有各种各样的后门端口,一个一个找太麻烦,直接全关了

iptables -L # 先查看已有规则

iptables -F # 删除所有规则

iptables -I INPUT -p tcp --dport 22 -j ACCEPT # 开放22端口,这个必须要!!! 比赛的时候是靠ssh连接上去的,如果这个关了,自己都连不上

iptables -I INPUT -p tcp --dport 21 -j ACCEPT # 开放21端口

iptables -I INPUT -p tcp --dport 23 -j ACCEPT # 开放23端口

iptables -I INPUT -p tcp --dport 80 -j ACCEPT # 开放80

iptables -I INPUT -p tcp --dport 3306 -j ACCEPT # 开放3306

iptables -I INPUT -p icmp -j ACCEPT # icmp,比赛的时候要求能ping通,所以这个也要开放

iptables -A INPUT -j DROP # 上面的配好后直接禁掉其他的,这里的一定要用 “-A” !!!

?

?

常用命令:

-A 追加规则-->iptables -A INPUT

-D 删除规则-->iptables -D INPUT 1(编号)

-R 修改规则-->iptables -R INPUT 1 -s 192.168.12.0 -j DROP #取代现行规则,顺序不变(1是位置)

-I 插入规则-->iptables -I INPUT 1 --dport 80 -j ACCEPT #插入一条规则,原本位置上的规则将会往后移动一个顺位

-L 查看规则-->iptables -L INPUT #列出规则链中的所有规则

-N 新的规则-->iptables -N allowed #定义新的规则


通用参数:

-p 协议 例:iptables -A INPUT -p tcp

-s源地址 例:iptables -A INPUT -s 192.168.1.1

-d目的地址 例:iptables -A INPUT -d 192.168.12.1

-sport源端口 例:iptables -A INPUT -p tcp --sport 22

-dport目的端口 例:iptables -A INPUT -p tcp --dport 22

-i指定入口网卡 例:iptables -A INPUT -i eth0

-o指定出口网卡 例:iptables -A FORWARD -o eth0

-j 指定要进行的处理动作

常用的ACTION:

DROP:丢弃

REJECT:明示拒绝

ACCEPT:接受

SNAT基于原地址的转换

source--指定原地址

配置文件

ssh

vim /etc/ssh/sshd_config # 编辑配置文件

Prot 22 # 端口号设置为22,比赛时一般不允许修改端口

PermitRootLogin yes # 允许root登录

PasswordAuthentication yes # 允许登录

PermitEmptyPasswords no # 不允许空密码登录

ftp

vim /etc/vsftpd.conf #配置文件路径可能有点不一样,根据当时环境而定

anonymous_enable=YES #这是允许匿名用户登录,把YES改为NO即可,ftp的加固基本上就这个了

telnet

# 这个基本上没得什么加固的,用户名密码难一点基本就没问题了

http

ls /var/www/html #查看html目录下有什么文件

cp -r /var/www/html/* /root/html_bak # 先备份

rm -rf /var/www/html/* # 删除html目录下所有文件

mysql

# mysql的话禁止外联就可以了

update mysql.user set host="127.0.0.1"; # 只允许127.0.0.1连接

flush privileges; # 使其立即生效

?

还有一种改配置文件的方法

vi /etc/my.cf # 将#skip-networking注释去掉

rsync

配置文件默认路径为:/etc/rsyncd.conf

配置文件

uid=root #运行RSYNC守护进程的用户

gid=root #运行RSYNC守护进程的组

use chroot=no #不使用chroot

max connections=4 # 最大连接数为4

strict modes=yes #是否检查口令文件的权限

port=873 #默认端口873


[backup] #这里是认证的模块名,在client端需要指定

path=/home/backup/ #需要做镜像的目录,不可缺少!

comment=This is a test #这个模块的注释信息

ignore errors #可以忽略一些无关的IO错误

read only=no# 只读

list=no #不允许列文件

auth users=hening #认证的用户名,如果没有这行则表明是匿名,此用户与系统无关

secrets file=/etc/rsync.pas #密码和用户名对比表,密码文件自己生成

hosts allow=10.96.9.105,10.96.9.113#允许主机内容ip

hosts deny=0.0.0.0/0 #禁止主机

#transfer logging=yes

pid file=/var/run/rsyncd.pid

lock file=/var/run/rsync.lock

我们在网上成功购买一个模板后,接下来需要做的是把网站整上线,只有网站成功上线,别人才能在浏览器里边搜到我们的网站,关于网站上线的详细教程,让我们一起来看看,手把手教你,不相信你学不会!

网站模板上传步骤

1、首先备份本地模板数据,并压缩为.zip 格式。



2、下载 8Uftp 并登陆后台,虚拟主机空间包含 WEB、LOG、Backup 三个目录,目录文件不可随意删除或修改目录名,WEB 目录:放置 您的站点文件;LOG 目录:通过“下载日志”功能将您网站的访问日 志文件下载保存到此目录,您可自由查看;Backup 目录:放置您的 备份文件。

3、打开 WEB 文件,删除景安 index 主页,上传备份模板数据.ZIP,在 景安后台在线解压,然后在 FTP 上刷新,删除模板数据.ZIP。



4、打开浏览器输入 http://你的网址/install ,如果出现 dir,那么请删 除 install 文 件 夹 中 的 install.lock.txt 和 index.html , 并 且 把 index.php.bak 改 成 index.php ; module-install.php.bak 改 成 module-install.php,然后刷新页面。

5、勾选后点击继续-继续-填写数据库信息,其中数据库主机、数据库 用户、数据库密码、数据库名称要按照配置的数据库信息填写。其它 地方不要动-继续-安装完成。

6、点击“登录网站后台” 或者输入 http://您的域名/dede/ 进入后 台,为了安全起见,dede 这个文件夹的名字可以改掉。



7、后台数据还原-点击系统-点击数据备份与还原-点击右上角数据还 原-拉倒最下面点击开始还原数据。

8、数据还原后,现在后台登陆的账号密码都变成 admin 了,需要点 击系统-系统用户管理修改下密码。

9、点击系统-系统基本参数设置-站点根网址输入 http://你的域名,前 面带 http://结尾不要带/,默认保存路径/后面的 a 去掉,在基本参数 设置页面也可以设置网站的三大标签和其它参数,设置完成后点击确 定。一定要修改站点根网址,一定要保持这里和浏览器上的地址栏域 名一致

10、点击生成-更新系统缓存。