开发
库
- libogg
http://www.linuxfromscratch.org/blfs/view/svn/multimedia/libogg.html
报错:oggenc: Command not found
需要安装libogg
1 | ./configure --prefix=/usr \ |
- tar.xz如何解压
1 | xz -d ***.tar.xz |
系统
centos7 安装
用到的工具有:
CENTOS7ISO镜像,U盘一个(最好16G),ultraiso
a、安装ultraiso,,打开-镜像文件-写入U盘。写入成功后,一定要把安装镜像拷备到U盘里 b、重启电脑,将BIOS启动设置为U盘启动 c、进入图形化安装界面。选择安装源-选择第二项是选择ISO文件-选择我们刚才拷到U盘的ISO镜像-点左上角的“完成” d、选择打开网络,否则无法上网 e、完成
CentOS 7 yum安装Maven、Ant
wget http://repos.fedorapeople.org/repos/dchen/apache-maven/epel-apache-maven.repo -O /etc/yum.repos.d/epel-apache-maven.repo yum -y install apache-maven yum -y install ant
ubuntu 安装
下载iso文件
虚拟机安装为了可以通过ssh工具远程访问,网络需要设置成桥接网卡
如需要远程root登录参考《Linux命令》里内容
新云服务器CentOS7后应该做的准备
- 升级
1 | yum -y update |
- 更改hostname
1 |
|
- 替换 /etc/locale.conf 的内容,解决LC_CTYPE: cannot change locale (UTF-8)
1 |
|
- 安装基本工具
1 |
|
- 升级openssl
1 |
|
- 解决openssl: error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory错误
1 |
|
- 创建普通用户
1 |
|
- 安装Java环境
1 |
|
- 安装nginx
1 |
|
- 阿里云控制台
- 开通SLB
- 配置域名A记录
- 禁止外网访问 安全组
系统服务
安装g++
1、查询是否缺失相对应的包
rpm -qa | grep "g++"
2、确认系统是否安装
在确认系统未安装之后,查询可安装的相对应的功能的包:
yum whatprovides "*/g++"
3、安装
上面步骤应该会查询到安装包,如果多个是一个列表,可以选择一个来安装,本例查询到的是gcc-c++-4.4.7-4.el6.x86_64,则输入下面命令安装
yum install gcc-c++-4.4.7-4.el6.x86_64
4、确认是否安装
直接输入g++ -v,如果有版本号则表示安装成功。
CentOS6.4环境下布署LVS+keepalived
环境:
1.CentOS 6.4
2.ipvsadm 1.2.4
3.keepalived 1.1.17
查看kernel-devel是否安装
rpm -q kernel-devel
如果没装,查看内核版本
uname -r
2.6.32-358.el6.x86_64
这个表示64位的
In CentOS 5, there are three kernel-devel packages available:
kernel-devel (both 32- & 64-bit architectures) kernel-xen-devel (both 32- & 64-bit architectures) kernel-PAE-devel (32-bit architecture only)
直接用下面安装
yum install kernel-devel
下载
wget http://www.linuxvirtualserver.org/software/kernel-2.6/ipvsadm-1.24.tar.gz wget http://www.keepalived.org/software/keepalived-1.1.17.tar.gz ln -s /usr/src/kernels/2.6.32-431.17.1.el6.x86_64/ /usr/src/linux tar -zxvf ipvsadm-1.24.tar.gz cd ipvsadm-1.24 make;make install cd .. tar -zxvf keepalived-1.1.17.tar.gz cd keepalived-1.1.17 ./configure
configure: error:
!!! OpenSSL is not properly installed on your system. !!!
!!! Can not include OpenSSL headers files.
解决办法:
yum -y install openssl-devel ./configure
configure: error: Popt libraries is required
解决办法:
yum install popt-devel make;make install
安装完之后keepalived的配置:
cp /usr/local/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/ cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/ mkdir /etc/keepalived cp /usr/local/sbin/keepalived /usr/sbin/ vi /etc/keepalived/keepalived.conf
!Configuration File for keepalived
global_defs { notification_email { sa@fminutes.com } notification_email_from defage@163.com smtp_server smtp.163.com smtp_connect_timeout 30 router_id LVS_DEVEL }
vrrp_instance VI_1 {
state MASTER #备份服务器上将MASTER改为BACKUP
nopreempt
interface eth0
virtual_router_id 51
priority 100 # 备份服务上将100改为99
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.0.104
#(如果有多个VIP,继续换行填写.)
}
}
virtual_server 192.168.0.104 80 {
delay_loop 6 #(每隔10秒查询realserver状态)
lb_algo wrr #(lvs 算法)
lb_kind DR #(Direct Route)
persistence_timeout 30 #(同一IP的连接60秒内被分配到同一台realserver)
protocol TCP #(用TCP协议检查realserver状态)
real_server 192.168.2.137 80 {
weight 8 #(权重)
TCP_CHECK {
connect_timeout 10 #(10秒无响应超时)
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
}
安装成功应该能看到如下信息
ipvsadm -v
查看IPVS表
ipvsadm -ln
启动keepalived
service keepalived start
查看lvs_server服务器启动keepalived的日志信息
tail -f /var/log/messages
安装logstash+kibana+elasticsearch+redis搭建集中式日志分析平台
下载elasticsearch。
wget https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-1.3.2.tar.gz tar zxvf elasticsearch-1.3.2.tar.gz
解压后,进入bin目录。执行如下命令,让elasticsearch以前台方式启动:
./elasticsearch -f
访问默认的9200端口
curl -X GET http://localhost:9200
安装Redis
执行如下命令,使之在控制台输出debug信息:
redis-server --loglevel verbose
logstash日志生成器(shipper)。
wget https://download.elasticsearch.org/logstash/logstash/logstash-1.4.2.tar.gz tar zxvf logstash-1.4.2.tar.gz
新建一个配置文件:shipper.conf,
cd logstash-1.4.2 mkdir conf
其内容如下
input { stdin { type => "example" } } output { stdout { codec => rubydebug } redis { host => "127.0.0.1" port => 6379 data_type => "list" key => "logstash" } }
启动shipper(其中-f是指以指定的配置文件启动,-l是设置logstash本身的日志位置。&是以守护进程方式启动。)
bin/logstash agent -f conf/shipper.conf -l logstash_shipper.log &
终端窗口将出现如下提示信息:
Using milestone 2 output plugin 'redis'. This plugin should be stable, but if you see strange behavior, please let us know! For more information on plugin milestones, see http://logstash.net/docs/1.3.2/plugin-milestones {:level=>:warn}
然后在终端窗口直接按回车,将出现如下信息:
{ "message" => "", "@version" => "1", "@timestamp" => "2014-01-16T08:15:19.400Z", "type" => "example", "host" => "redhat" }
这个json信息将发送给redis, 同时redis的终端窗口将出现类似下面的提示信息:
[32470] 16 Jan 17:09:23.604 - Accepted 127.0.0.1:44640 [32470] 16 Jan 17:09:27.127 - DB 0: 1 keys (0 volatile) in 4 slots HT. [32470] 16 Jan 17:09:27.127 - 1 clients connected (0 slaves), 304752 bytes in use
logstash日志索引器(indexer)
新建一个配置文件:indexer.conf
其内容如下:input { redis { host => "127.0.0.1" # these settings should match the output of the agent data_type => "list" key => "logstash" # We use the 'json' codec here because we expect to read # json events from redis. codec => json } } output { stdout { debug => true debug_format => "json"} elasticsearch { host => "127.0.0.1" } }
启动indexer(其中-f是指以指定的配置文件启动,-l是设置logstash本身的日志位置。&是以守护进程方式启动。)
bin/logstash agent -f conf/indexer.conf -l logstash_indexer.log &
启动logstash的图形界面服务
bin/logstash-web
修改kibana端口,文件logstash-1.4.2/lib/logstash/kibana.rb
settings.port = 9292
centos 安装 ntpdate 并同步时间
在命令行中做如下操作,来安装ntpdate
yum install -y ntp
继续在命令行中操作,进行同步时间
ntpdate time.nist.gov
rsync 文件同步
安装
yum install rsync touch /etc/rsyncd.conf #创建rsyncd.conf,这是rsync服务器的配置文件。 touch /etc/rsyncd.secrets #创建rsyncd.secrets ,这是用户密码文件。 chmod 600 /etc/rsyncd.secrets #将rsyncd.secrets这个密码文件的文件属性设为root拥有, 且权限要设为600, 否则无法
备份成功!
touch /etc/rsyncd.motd
设定密码文件
密码文件格式很简单,rsyncd.secrets的内容格式为:
用户名:密码root:mike chown root.root rsyncd.secrets #修改属主 chmod 600 rsyncd.secrets #修改权限
启动rsync服务器
/usr/bin/rsync --daemon
设定 /etc/xinetd.d/rsync, 简单例子如下:
# default: off # description: The rsync server is a good addition to am ftp server, as it \ # allows crc checksumming etc. service rsync { disable = no socket_type = stream wait = no user = root server = /usr/bin/rsync server_args = --daemon log_on_failure += USERID }
上述, 主要是要打开rsync這個daemon, 一旦有rsync client要连接時, xinetd会把它转介給 rsyncd(port 873)。然后service xinetd restart, 使上述设定生效.
rsync服务器和防火墙
Linux 防火墙是用iptables,所以我们至少在服务器端要让你所定义的rsync 服务器端口通过,客户端上也应该让通过。
iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 873 -j ACCEPT iptables -L 查看一下防火墙是不是打开了 873端口
实例:
列出rsync 服务器上的所提供的同步内容
rsync --list-only root@192.168.145.5:: rsync --list-only root@192.168.145.5::rhel4home
rsync客户端同步数据
rsync -avzP --password-file=/etc/rsyncd.secrets root@192.168.201.5::home home
让rsync客户端自动与服务器同步数据
step1:创建同步脚本和密码文件
mkdir /etc/cron.daily.rsync cd /etc/cron.daily.rsync touch rhel4home.sh chmod 755 /etc/cron.daily.rsync/*.sh mkdir /etc/rsyncd/ touch /etc/rsyncd/rsync5root.secrets chmod 600 /etc/rsyncd/rsync*
编辑rhel4home.sh,内容是如下的:
#!/bin/sh #backup 192.168.201.5:/home /usr/bin/rsync -avzP --password-file=/etc/rsyncd/rsync5root.secrets root@192.168.201.5::home /bk/home/
接着我们修改 /etc/rsyncd/rsync5root.secrets的内容;
# echo “mima” > /etc/rsyncd/rsync5root.secrets
**step2:修改crond服务器的配置文件 加入到计划任务**
#crontab -e
加入下面的内容:
# Run daily cron jobs at 4:10 every day backup rhel4 data:
10 4 * /usr/bin/run-parts /etc/cron.daily.rsync 1> /dev/null
注:
第一行是注释,是说明内容,这样能自己记住。
第二行表示在每天早上4点10分的时候,运行 /etc/cron.daily.rsync 下的可执行脚本任务;
要重启crond 服务器;
killall crond 注:杀死crond 服务器的进程; ps aux |grep crond 注:查看一下是否被杀死; /usr/sbin/crond 注:启动 crond 服务器; ps aux |grep crond 注:查看一下是否启动了?
root 3815 0.0 0.0 1860 664 ? S 14:44 0:00 /usr/sbin/crond
root 3819 0.0 0.0 2188 808 pts/1 S+ 14:45 0:00 grep crond
wget安装
yum -y install wget
centos7 iptables
关闭firewall:
systemctl stop firewalld.service #停止firewall systemctl disable firewalld.service #禁止firewall开机启动
安装iptables防火墙
yum install iptables-services #安装
vi /etc/sysconfig/iptables #编辑防火墙配置文件
# Firewall configuration written by system-config-firewall # Manual customization of this file is not recommended. *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT -A INPUT -p icmp -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT -A INPUT -j REJECT --reject-with icmp-host-prohibited -A FORWARD -j REJECT --reject-with icmp-host-prohibited COMMIT
:wq! #保存退出
systemctl restart iptables.service #最后重启防火墙使配置生效 systemctl enable iptables.service #设置防火墙开机启动
Failed to start IPv4 firewall with iptables.
备份iptables配置文件
yum remove iptables
yum remove iptables-services
重复第1步
centos7 安装jdk8
yum -y list java*
yum -y install java-1.8.0-openjdk*
maven 安装
wget http://repos.fedorapeople.org/repos/dchen/apache-maven/epel-apache-maven.repo -O /etc/yum.repos.d/epel-apache-maven.repo
yum -y install apache-maven
centos7 安装docker
yum install epel-release
yum install docker
其他服务
Centos 7下一键安装ffmpeg
- 安装EPEL Release,因为安装需要使用其他的repo源,所以需要EPEL支持
1 | yum install -y epel-release |
- 安装Nux-Dextop源
1 | #导入一个Code |
- yum安装ffmpeg
1 | yum install -y ffmpeg |
Centos下搭建NTP时间服务器
NTP协议可使多台客户机的时间与指定的NTP服务器的时间保持一致。在实际生产过程中,保证所有服务器的时间同步还是很有必要的。
- 安装NTP服务
1 | yum install ntp #安装NTP时间服务器,默认端口是使用了Network Time Protocol Daemon(UDP 123 port) |
- NTP相关命令
/usr/sbin/ntpd NTP服务的守护进程,配置文件为/etc/ntp.conf 。
/usr/sbin/ntpdate 用来连接NTP服务器命令,比如ntpdate 192.168.6.51 。
/usr/sbin/ntpq NTP查询命令
git库的简单安装
首先需要安装Git,可以使用yum源在线安装
yum install -y git
创建一个git用户,用来运行git服务
adduser git passwd git su git
初始化git仓库:这里我们选择/data/git/learngit.git来作为我们的git仓库
git init --bare learngit.git
保证里面的所有文件把owner改为git:
chown git:git learngit.git chown git:git learngit.git/* -R
客户端clone
git clone git@192.168.1.130:/data/git/learngit.git
出于安全考虑,第二步创建的git用户不允许登录shell,这可以通过编辑/etc/passwd文件完成。找到类似下面的一行:
git:x:1001:1001:,,,:/home/git:/bin/bash
最后一个冒号后改为:
git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell
搭建svn
通过 yum install subversion来安装
svnserve --version
建立svn目录库
mkdir svn svnadmin create svn/repo
进入版本库中的配置目录conf,此目录有三个文件:
svn服务综合配置文件(svnserve.conf)
anon-access = none auth-access = write password-db = passwd authz-db = authz realm = repo
用户名口令文件(passwd)
john.zhang = zh123456
权限配置文件(authz)
[groups] # harry_and_sally = harry,sally # harry_sally_and_joe = harry,sally,&joe admin = john.zhang [repo:/] admin = rw john.zhang = rw
修改/root/.subversion/servier选项
store-plaintext-passwords = yes
启用svn
svnserve -d -r /www/svn/
修改防火墙,开放3690端口
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3690 -j ACCEPT service iptables restart
建立test目录进行上传svn测试
mkdir test svn import test svn://211.101.18.76/repo/test -m "test" --force-log
svn提交代码
svn ci -m "20160627"
svn添加新文件到库中
svn add */*.md
NodeBB论坛安装
环境准备
yum -y update
CentOS 7
yum -y install epel-release yum -y groupinstall "Development Tools"
安装redis 和 npm等
yum -y install redis yum -y install npm yum -y install git ImageMagick
启动redis
systemctl start redis systemctl enable redis
下载NodeBB
cd /path/to/nodebb/install/location git clone -b v1.0.3 https://github.com/NodeBB/NodeBB nodebb
安装nodebb
cd nodebb npm install ./nodebb setup
启动
./nodebb start
countly安装
安装 ubuntu
下载 countly
安装 nodejs 4以上
curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash - sudo apt-get install -y nodejs sudo apt-get install -y build-essential
安装 countly
sh ./countly.install.sh
centos 6.x 安装 countly
修改bin\countly.install_rhel.sh
如果安装了nodejs mongodb nginx,则注释掉相应语句
解决问题 error: #error This version of node/NAN/v8 requires a C++11 compiler
安装devtoolset-3
rpm -ivh https://www.softwarecollections.org/en/scls/rhscl/devtoolset-3/epel-6-x86_64/download/rhscl-devtoolset-3-epel-6-x86_64.noarch.rpm yum install devtoolset-3-gcc-c++
安装完毕后使用命令,临时覆盖系统原先的gcc引用
scl enable devtoolset-3 bash
若想永久覆盖,可在.bashrc中添加
source /opt/rh/devtoolset-3/enable
然后再继续npm install,就能够正常安装以前无法编译通过的module了
运行countly.install_rhel.sh安装
启动nginx
service nginx restart
默认是80端口,如果被占修改nginx配置文件
启动countly
countly start
Tomcat
- 为了保证get数据采用UTF8编码,在server.xml中进行了如下设置(URIEncoding=”UTF-8”):
<Connector port="8080" maxThreads="150" minSpareThreads="25"
maxSpareThreads="75" enableLookups="false" redirectPort="8443"
acceptCount="100" debug="99" connectionTimeout="20000"
disableUploadTimeout="true" URIEncoding="UTF-8"/>
catalina.out 日志分割
安装cronolog
wget http://cronolog.org/download/cronolog-1.6.2.tar.gz tar zxvf cronolog-1.6.2.tar.gz cd cronolog-1.6.2 ./configure make make install
查看cronolog安装后所在目录(验证安装是否成功)
which cronolog
一般情况下显示为:/usr/local/sbin/cronolog
打开catalina.sh文件
找到下面行并把它用 # 注释掉
touch "$CATALINA_OUT" CATALINA_OUT="$CATALINA_BASE"/logs/catalina.out
改为:
CATALINA_OUT="$CATALINA_BASE"/logs/catalina.%Y-%m-%d.out org.apache.catalina.startup.Bootstrap "$@" start \ >> "$CATALINA_OUT" 2>&1 "&"
改为:
org.apache.catalina.startup.Bootstrap "$@" start 2>&1 \ | /usr/local/sbin/cronolog "$CATALINA_OUT" >> /dev/null &
Tomcat下使用Log4j 接管 catalina.out 日志文件生成方式,按天存放,解决catalina.out日志文件过大问题
准备jar包:
log4j-1.2.17.jar (从 下载 )
tomcat-juli.jar, tomcat-juli-adapters.jar (从 下载 ,根据你的Tomcat版本选择对应的分支)
将上面的三个jar包拷贝到 Tomcat 的 lib 目录下;
将 tomcat-juli.jar 拷贝到 Tomcat 的 bin 目录下,替换原有的jar包;
修改 Tomcat 的 conf/context.xml 文件,
将<Context>为<Context swallowOutput="true"> (增加 swallowOutput="true" 的属性配置,只有这样才能完全的把tomcat的stdout给接管过来。这一步很关键 在官网及网上找了许多资料都没有提及。);
删除 Tomcat 的 conf/logging.properties 文件(或者重命名-建议);
在 Tomcat 的 lib 目录下创建 log4j.properties 文件:
配置Lua运行环境
1 | wget http://www.lua.org/ftp/lua-5.3.1.tar.gz |
修改Makefile文件
1 | vim Makefile |
1 | yum install -y readline-devel ncurses-devel |
通过yum安装gcc 4.9 5.2等高版本gcc
gcc 4.9 安装
1 | yum install centos-release-scl -y |
gcc 5.2 安装
1 | yum install centos-release-scl -y |
Hyperic HQ系统监控
安装 Hyperic HQ 5.8.2.1 中文版
环境描述查询
cat /etc/issue uname -a
安装文件准备
下载地址下载安装文件: hyperic-hq-installer-x86-64-linux-5.8.2.1.tar.gz ,放在 /work/temp目录下
安装过程
mkdir /work mkdir /work/hq-zh mkdir /work/temp cd /work/temp tar xzvf hyperic-hq-installer-x86-64-linux-5.8.2.1.tar.gz cd hyperic-hq-installer-5.8.2.1/ ./setup.sh
打开另一终端窗口,进入到 root 用户
/work/temp/hyperic-hq-installer-5.8.2.1/installer/data/hqdb/tune-os.sh
回到原窗口继续安装:
运行
cd /work/hq-zh/server-5.8.2.1/bin ./hq-server.sh start cd /work/hq-zh/agent-5.8.2.1/bin ./hq-agent.sh start
使用
打开浏览器访问 http://192.168.1.103:7080/
hqadmin
xxxxx
修改iptables,打开agent接口
-A INPUT -m state --state NEW -m tcp -p tcp --dport 7443 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 2144 -j ACCEPT /etc/init.d/iptables restart
监控tomcat7,要打开tomcat的JMS,找到catalina.sh里面的这句
# ----- Execute The Requested Command -----------------------------------------
在这句前面加上下面
CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote -Djava.rmi.server.hostname=xsb37-int.cnhubei.com -Dcom.sun.management.jmxremote.port=6969 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"
其中xsb37-int.cnhubei.com为host的名称
/etc/hosts文件里要加入
127.0.0.1 xsb37-int.cnhubei.com localhost.localdomain localhost
在linux下使用rpm版本安装的mysql,HQ Agent不能对其进行自动发现,只能手动添加。
具体是
1、点击进入该linux的监控平台 2、点击Tools Menu -- > New Server进行添加server的页面,填入Name,选中Mysql的插件,在Install Path:填入mysql的安装目录(一般是/var/lib/mysql),保存。 3、配置属性里的jdbcUrl属性里输入:jdbc:mysql://10.99.113.32:3306
apache安装
删除系统自带的Apache
rpm -qa | grep httpd
关闭并删除httpd服务
service httpd stop chkconfig --del httpd
然后倒序删除
rpm -e system-config-httpd-1.3.3.3-1.el5 --nodeps
等等…….
下载Apache
安装Apache
tar -zxvf httpd-2.2.27.tar.gz cd httpd-2.2.27 ./configure --prefix=/zewspaper/apache --enable-so --enable-mods-shared=most --enable-rewrite=shared --enable-proxy=shared --enable-proxy-ajp=shared --enable-proxy-balancer=shared --enable-speling=shared
其中–prefix=/zewspaper/apache 是设置安装的目录
如果报错,则运行
yum -y install gcc安装gcc make make install
Apache启动
cd /zewspaper/apache/bin/
修改/zewspaper/apache/conf/httpd.conf文件
将里面的#ServerName localhost:80注释去掉即可。
./apachectl start #启动Apache ./apachectl stop #关闭Apache ./apachectl restart #重启Apache
禅道
- 安装
http://www.zentao.net/download/
下载linux64版
cd /opt/
wget http://dl.cnezsoft.com/zentao/8.2.4/ZenTaoPMS.8.2.4.zbox_64.tar.gz
tar -zxvf ZenTaoPMS.8.2.4.zbox_64.tar.gz
/opt/zbox/zbox start -ap 8088 -mp 3307
cd zbox/
./auth/adduser.sh
http://192.168.1.132:8088/adminer/ 输入刚才的数据库root和密码,选择zentao库,可以导入数据库了
http://192.168.1.132:8088/ 访问禅道
导出数据库
mysqldump -u root -p zentao > zentao.sql
mysqldump -u root -h 127.0.0.1 -P 3307 -p zentao > zentao-2017-11-14.sql
升级
Jenkins
安装
安装
wget http://mirrors.jenkins-ci.org/war-stable/latest/jenkins.war
运行
nohup java -jar jenkins.war --httpPort=8990 >>jenkins.out &
安装插件
Artifact Deployer Plug-in
用于生成jar包后复制到指定目录,如下配置:
Artifacts to deploy:*.jar Basedir:critz-rest/critz-rest/target/ Remote File Location:/www/jenkins/
Hudson Post build task
用于复制到指定目录后执行相应的启动shell脚本命令,如:sh /www/jenkins/critz-rest-1.0.sh restart
注意事项,
svn路径的配置,一定要完整,不要使用Local module directory (optional),否则可能导致无法发现新提交的svn代码。。。。。
注册用户需要建立,(系统管理- Configure Global Security)勾选“启用安全”-“ Jenkins专有用户数据库”-“允许用户注册”,然后保存
点击右上角“注册”,进行新用户注册。
(系统管理- Configure Global Security)勾选“项目矩阵授权策略”,添加新注册的用户,并勾选“Overall”里面的“Administer”,保存
jenkins目录迁移
拷贝原/root/.jenkins 目录到xxxx
在启动Web容器之前设置JENKINS_HOME环境变量.
用root用户登录
编辑profile文件:
vi /etc/profile
在最后加入:export JENKINS_HOME=xxxx
保存,退出后执行:
source /etc/profile
让配置生效
登入jenkins-系统管理-系统设置-Maven-Maven安装
MAVEN_HOME改成
${JENKINS_HOME}/tools/hudson.tasks.Maven_MavenInstallation/Maven3
https的keystore
HTTPS requires a signed certificate certificate and a certificate password which we provide using property values. To do so, we can use the JDK’s keytool like this:
$ keytool -genkey -alias bookmarks -keyalg RSA -keystore src/main/resources/tomcat.keystore
文件说明
ca-certs.crt ssl.key和ssl.crt合并后的ca文件 ssl.crt 证书文件 ssl.key 私钥文件,有密码(目前是lexiangkudong) ssl.p12 p12文件,是证书文件和私钥文件合并成的,需要在startssl网站生成 ssl.keystore 通过p12文件生成的,java的密钥库,java部署https时只需要这个文件
按照网站的步骤,在startssl网站申请证书文件和私钥文件
http://www.chinaz.com/free/2010/1111/142581_3.shtml
http://www.deepvps.com/apply-startssl-ssl-certificate.html
http://www.freehao123.com/startssl-ssl/
- 用在startssl网站申请的证书文件和私钥文件生成p12文件,网站左边栏
使用下面的步骤利用p12文件,生成keystore文件
keytool -rfc -list -keystore ssl.p12 -storetype pkcs12 keytool -importkeystore -v -srckeystore ssl.p12 -srcstoretype pkcs12 -srcstorepass 12345678 -destkeystore ssl.keystore -deststoretype jks -deststorepass 11111111
其中12345678为key文件的密码,11111111为给keystore文件设置的密码
keytool -list -keystore ssl.keystore
这样就在目录中生成keystore文件了
把keystore放入linux的某个目录
在spring boot的jar文件的配置application.properties文件中设置ssl
#443是https的端口号 server.port=443 #keystore文件的路径 server.ssl.key-store=/usr/local/ssl/crt/ssl.keystore #kestore文件的密码 server.ssl.key-store-password=11111111 #key文件的密码 server.ssl.key-password=12345678
Jenkins进阶之远程部署、构建Git分支、回滚
https://www.toutiao.com/i6508546172448145934/
- 远程服务器部署、启动
常用两种方式:
Publish over SSH
准备工作
ssh免密配置 通过设置SSH key免密访问远程服务器 如有服务器A、B,现想A通过ssh免密码访问B,则将A机器中的id_rsa.pub ,拷贝到B机器的 .ssh/authorized_keys 文件中 $ cat id_rsa.pub >> .ssh/authorized_keys #拷贝A服务器公钥到B服务器authorized_keys文件,默认该文件不存储,系统会新建该文件。 $ chmod 600 authorized_keys #设置.ssh目录权限 A机器第一次ssh 登录到B机器时,需要输入B机器的密码,以后就可以不输入了。
安装Publish over SSH插件
系统管理→管理插件→可选插件→Publish Over SSH
插件配置
“系统管理>系统设置”中进行配置 参数说明 Passphrase:SSH的密码 创建ssh key时指定,本文创建ssh key时默认为空。故,此处为空,不填写。 Path to key:SSH私钥的文件路径 私钥文件的路径,可以是绝对路径,也可以是相对$JENKINS_HOME的相对路径 Key:私钥 私钥导出后的文本内容 如果“Key”和“Path to key”都设置,则“Key”的优先级较高 Disable exec:禁止在目标机上执行命令
SSH Server 配置
指定远程服务器的ip,存放目录。可以配置多个ssh server ,jenkins自动将打包成果发送到多个远程服务器。 配置完成后,可以 通过 “Test Configuration” 测试是否配置正确。 参数说明 Name SSH节点配置的名称,在Job中使用Publish over SSH插件时,此名称将出现在“SSH Server”中“Name”的下拉列表中,如下图: Hostname 通过SSH连接到的机器的主机名或IP Username SSH服务使用的用户名,使用key进行连接时为key指定的用户名 Remote Derictory 运程机器上真实存在的目录,并且“Username”指定的用户要有访问此目录的权限,插件将把文件传送到此目录下。
Publish over SSH 的应用
创建项目时,设置 构建环境,与Publish over ssh 的设置一一对应
Jenkins生产环境回滚
回滚的原理:
将历史构建的部署包备份,回滚时选择历史构建编号,重新拷贝部署包到远程服务器。
创建回滚任务
选择参加化构建,便于在触发回滚时指定回滚版本号。 参数说明: 建议选择Run Parameter,回滚时从下拉框选择回退版本号。 Name:任意名称,此名称是在下面的回滚构建脚本中以变量的方式使用。 Project:必须是构建列表里的名称,回滚脚本依赖该名称查找回滚的包。
源码管理
选择None 构建: 变量说明: WrappeRollback: 对应Run Parameter中配置的名称。该变量的值是构建的包的默认存放地址。 BUILD_NUMBER:历史构建版本号。
执行回滚
选择任务列表中的回滚任务: 选择回滚版本号,开始构建
错误汇总
Error Message: ios notification length should be less than 220 bytes
极光推送ios最多55个汉字,包括extras字段内容。
手机连电信3g网访问服务器,报504错误。
把手机上的联网模式 由ctwap 改成ctnet就可以正常访问了
如果tomcat或jvm崩溃报如下错误
# # A fatal error has been detected by the Java Runtime Environment: # # SIGSEGV (0xb) at pc=0x00007fbc6578afad, pid=6312, tid=140446257850112 # # JRE version: Java(TM) SE Runtime Environment (7.0_51-b13) (build 1.7.0_51-b13) # Java VM: Java HotSpot(TM) 64-Bit Server VM (24.51-b03 mixed mode linux-amd64 compressed oops) # Problematic frame: # J com.tipoff.server.rest.controller.BrokenAPIController.setupBrokenAPI(Lredis/clients/jedis/Jedis;Ljava/lang/Integer;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;Lcom/tipoff/server/cms/model/Broken;)Lcom/tipoff/server/rest/model/BrokenAPI; # # Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again # # If you would like to submit a bug report, please visit: # http://bugreport.sun.com/bugreport/crash.jsp #
解释归结于:JIT在做编译优化的时候处理时出错,可能是触发了JVM的编译器的BUG导致的。
在这里,导致本次错误的是这个方法:
com.tipoff.server.rest.controller.BrokenAPIController.setupBrokenAPI
解决办法:让jvm跳过该方法的编译优化
catalina.sh找到JAVA_OPTS
增加下边的代码就可以了!
-XX:CompileCommand=exclude,com/tipoff/server/rest/controller/BrokenAPIController,setupBrokenAPI
CentOS 6.6,/etc/sysconfig/下没有iptables的问题
任意运行一条iptables防火墙规则配置命令
iptables -P OUTPUT ACCEPT
对iptables服务进行保存
service iptables save
编辑/etc/sysconfig/下iptables文件
重启iptables服务
service iptables restart
c++: error: unrecognized command line option ‘-std=gnu++14’
升级高版本gcc
a