linux中常用服务的安装


安装环境:centos7.5

配置离线yum源
参考:https://blog.csdn.net/mayh554024289/article/details/54236336
vi /etc/yum.conf
将 keepcache=0 改为 keepcache=1, 开启缓存功能
缓存的包存放在
cd /var/cache/yum/***/packages
利用缓存的包上传到打包环境机器,方便yum安装

配置本地yum源
mkdir -p /mnt/dvd1 /mnt/iso
DVD上传到/mnt/iso
mount -o loop /mnt/iso/CentOS-7-x86_64-Everything-1804.iso /mnt/dvd1
cd /etc/yum.repos.d
mkdir bak
mv *.repo bak/
生成yum源
touch Centos7-local.repo
[Centos7-local]
name=CentOS-$releasever - Media
baseurl=file:///mnt/dvd1
gpgcheck=0
enabled=1

epel源
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

yum clean all
yum makecache


安装jdk1.8
参考:https://www.cnblogs.com/sxdcgaq8080/p/7492426.html
下载到
mkdir /usr/java
解压
tar zxvf
设置环境变量
vim /etc/profile

JAVA_HOME=/usr/java/jdk1.8.0_181
PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/lib:$CLASSPATH
export JAVA_HOME
export PATH
export CLASSPATH

source /etc/profile 变量立即生效
Java -version 查看版本信息


安装tomcat 8.5
参考:https://blog.csdn.net/suyebiubiu/article/details/78585789
安装包放在
mkdir /usr/tomcat
解压
tar -zxvf
启动
/usr/tomcat/apache-tomcat-8.../bin
./starup.sh
防火墙关闭或者开启端口访问
systemclt stop firewalld
firewall-cmd --zone=public --add-port=8080/tcp --permanent
firewall-cmd --reload
设置端口
vi /usr/tomcat/apache-tomcat-8.5.16/conf/server.xml
游览器访问测试

安装配置nginx
yum安装包下载地址:http://nginx.org/packages/

配置环境
yum -y install gcc
yum -y install pcre-devel
yum install -y zlib-devel
yum install -y openssl-devel
上传nginx-1.2.9.tar.gz至
mkdir /usr/nginx
tar zxf nginx-1.2.9.tar.gz
cd nginx-1.2.9
./configure --prefix=/usr/nginx
make && make install
配置文件,可以修改端口,配置打包环境
cd /usr/nginx/conf
vim nginx.conf
autoindex on;
autoindex_exact_size off;
autoindex_localtime on;
server {
listen 88 default_server;
root /package;
}
启动nginx
cd /usr/nginx/sbin
./nginx
停止和重新加载配置文件
./nginx -s stop
./nginx -s quit
./nginx -s reload

安装mysql
yum安装包下载地址:http://repo.mysql.com/
参考:https://www.cnblogs.com/wsl222000/p/5445768.html


上传mysql包至mkdir /package下
yum install createrepo
createrepo . 创建yum仓库链接

配置mysql源
cd /etc/yum.repos.d
touch mysql.repo
[mysql]
name=mysql
baseurl=http://192.168.1.38:88/mysql5.5
gpgcheck=0
enabled=1

yum clean all

yum install mysql-community-client mysql-community-devel mysql-community-server php-mysql
systemctl start mysqld
mysql5.7安装完成之后,在/var/log/mysqld.log文件中给root生成了一个默认密码。
通过下面的方式找到root默认密码,然后登录mysql。
命令:grep 'temporary password' /var/log/mysqld.log
mysql -u root -p
set password for 'root'@'localhost'=password('!QAZ2wsx');


编译安装mysql


编译安装参考:http://blog.51cto.com/13643643/2132594
https://www.cnblogs.com/colder219/p/5492513.html
https://blog.csdn.net/sssssscccccc/article/details/80919826
检查是否本地已经安装了mysql
rpm -qa | grep mysql
卸载以前的mysql
rpm -e --nodeps

先下载MySQL源码,网址为:https://dev.mysql.com/downloads/mysql/ :
在Select Operationg System中选择Source Code;
在下面的Select OS Version选择Generic Linux(Architecture Independent);
然后再下面的部分可以看到Compressed TAR Archive,单击后面的Download;
在弹出的界面中选择最下面的No thanks, just start my download就可以开始下载了。 


groupadd mysql
useradd -r -g mysql mysql
passwd mysql

cd /home/mysql
上传,解压
tar -zxvf mysql-5.7.23.tar.gz
mkdr /usr/local/boost
上传,解压
tar zxf boost_1_59_0.tar.gz

cmake进行生成编译环境
cd /home/mysql/mysql-5.7.23
cmake
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql //指定mysql数据库安装目录
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock //连接文件位置
-DSYSCONFDIR=/etc //指定配置文件目录
-DSYSTEMD_PID_DIR=/usr/local/mysql //进程文件目录
-DDEFAULT_CHARSET=utf8 //指定默认使用的字符集编码
-DDEFAULT_COLLATION=utf8_general_ci //指定默认使用的字符集校对规则
-DWITH_INNOBASE_STORAGE_ENGINE=1 //存储引擎
-DWITH_ARCHIVE_STORAGE_ENGINE=1 //存储引擎
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 //存储引擎
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 //存储引擎
-DMYSQL_DATADIR=/usr/local/mysql/data //数据库文件
-DWITH_BOOST=/usr/local/boost //指定Boost库的位置,mysql5.7必须添加该参数
-DWITH_SYSTEMD=1

cmake
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock
-DSYSCONFDIR=/etc
-DSYSTEMD_PID_DIR=/usr/local/mysql
-DDEFAULT_CHARSET=utf8
-DDEFAULT_COLLATION=utf8_general_ci
-DWITH_INNOBASE_STORAGE_ENGINE=1
-DWITH_ARCHIVE_STORAGE_ENGINE=1
-DWITH_BLACKHOLE_STORAGE_ENGINE=1
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1
-DMYSQL_DATADIR=/usr/local/mysql/data
-DWITH_BOOST=/usr/local/boost
-DWITH_SYSTEMD=1

-也要带上,如果编译出现错误,请先删除CMakeCache.txt后,再重新编译:
rm -rf CMakeCache.txt
如果出现下面的提示就表示成功生成了编译环境:
-- Configuring done
-- Generating done

编译并安装,make过程非常耗时
如果是用虚拟机做实验,建议调整配置,添加处理器数量,make速度会快一点
make && make install

修改数据库目录权限
chown -R mysql:mysql /usr/local/mysql/
修改配置文件
mysql 5.7 版本和以前的有所不同,如果配置文件不做修改,则服务启动失败
vim /etc/my.cnf
[client]
port = 3306
default-character-set=utf8
socket = /usr/local/mysql/mysql.sock
[mysql]
port = 3306
default-character-set=utf8
socket = /usr/local/mysql/mysql.sock
[mysqld]
user = mysql
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
port = 3306
character_set_server=utf8
pid-file = /usr/local/mysql/mysqld.pid
socket = /usr/local/mysql/mysql.sock
server-id = 1
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES
chown mysql:mysql /etc/my.cnf //修改配置文件的权限

设置环境变量
echo 'PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile
echo 'export PATH' >> /etc/profile
source /etc/profile //使写入生效
初始化数据库
cd /usr/local/mysql/bin/mysqld
--initialize-insecure //生成初始化密码(5.7版本才有),实际会生成空密码
--user=mysql //指定管理用户
--basedir=/usr/local/mysql //指定工作目录
--datadir=/usr/local/mysql/data //指定数据文件目录

初始化数据库
cd /usr/local/mysql/bin/
./mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
编译安装初始化后会是空密码

启动


添加成为系统服务方便启动
cp /home/mysql/mysql-5.7.23/scripts/mysqld.service /usr/lib/systemd/system
systemctl daemon-reload //刷新识别mysqld.service服务
systemctl enable mysqld //加入系统自启动
systemctl start mysqld //启动服务
检查mysql是否启动
ps -ef|grep mysql
yum install net-tools
netstat -anpt | grep 3306

修改数据库密码
vim /etc/my.cnf skip-grant-tables(设置免密码登录,设置完成之后要重启systemctl restart mysqld)
mysql -u root -p
use mysql;
update mysql.user set authentication_string=password('!QAZ2wsx') where user='root';
flush privileges;
exit
免密码登陆删除并再重启

安装redis
参考:https://www.cnblogs.com/xiewenming/p/7687364.html
cd /usr/local/src/
安装包解压
tar zxf redis-3.2.12.tar.gz
cd redis-3.2.12
make
cd src
make install

方便管理,将Redis文件中的conf配置文件和常用命令移动到统一文件中
mkdir -p /usr/local/redis/etc
cp /usr/local/src/redis-4.0.2/redis.conf /usr/local/redis/etc/
cd /usr/local/src/cd redis-3.2.12/src
cp mkreleasehdr.sh redis-benchmark redis-check-aof redis-check-rdb redis-cli redis-sentinel redis-server /usr/local/redis/bin/
启动
cd /usr/local/redis/bin/
直接执行redis-server 启动的Redis服务,是在前台直接运行的
后台运行
vi /usr/local/redis/etc/redis.conf
daemonize改为yes
再次启动,并指定配置文件
/usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf
本地客户端命令连接
redis-cli

如果zabbix监控oracle,需要监控插件才可以
监控插件安装:http://www.cnblogs.com/ld1977/p/8011064.html

静默安装oracle 11g
参考:https://blog.csdn.net/JIANG123456T/article/details/77745892
机器基础信息关闭,selinux,防火墙,不必要服务
vim /etc/sysconfig/selinux
SELINUX=enforcing改成SELINUX=disabled
setenforce 0
service iptables stop
chkconfig iptables off
vim /etc/hosts
添加一行内容:IP 机器名

修改用户的限制文件
vi /etc/security/limits.conf
在文件后增加
oracle           soft    nproc           2047
oracle           hard    nproc           16384
oracle           soft    nofile          1024
oracle           hard    nofile          65536
oracle           soft    stack           10240

修改内核参数,具体参数意思,请百度或参考oracle官网解释

vi /etc/sysctl.conf
net.ipv4.ip_local_port_range = 32768 60999
fs.file-max = 185933
kernel.shmall = 4294967296
kernel.shmmax = 68719476736
kernel.shmmni = 4096
kernel.sem = 250 32000 32 128
net.core.rmem_max = 124928
net.core.rmem_default = 124928
net.core.wmem_max = 124928
net.core.wmem_default = 124928
fs.aio-max-nr = 1048576
sysctl -p //使配置生效
报错的话对应一个个查看,例如sysctl -a |grep fs.file-max,然后修改为输出的内容

依赖包检查安装,总结执行依赖如下,如果出现某个包安装失败,则需要手动下载相关的rpm包,然后执行安装即可
yum -y install
binutils
compat-libcap1
compat-libstdc++-33
compat-libstdc++-33*.i686
elfutils-libelf-devel
gcc
gcc-c++
glibc*.i686
glibc
glibc-devel
glibc-devel*.i686
ksh
libgcc*.i686
libgcc
libstdc++
libstdc++*.i686
libstdc++-devel
libstdc++-devel*.i686
libaio
libaio*.i686
libaio-devel
libaio-devel*.i686
make
sysstat
unixODBC
unixODBC*.i686
unixODBC-devel
unixODBC-devel*.i686
libXp

rpm包检查包、安装包、卸载包命令
rpm -qa|grep xxx
rpm -ivh xxx.rpm
rpm -e --nodeps xxx.rpm

建立用户,组,设置密码
groupadd oinstall
groupadd dba
groupadd oper
useradd -g oinstall -G dba,oper oracle
echo "oracle" | passwd --stdin oracle
查看一下
id oracle
uid=501(oracle) gid=501(oinstall) 组=501(oinstall),502(dba),503(oper)

新建目录             
mkdir -p /var/app/oracle/product/11.2.0/dbhome_1 //安装目录
mkdir -p /home/oracle/backup       //数据备份目录                                
mkdir -p /home/oracle/oraInventory     //清单目录,数据库创建及使用过程中的日志目录     
修改权限                         
chown -R oracle:oinstall /var/app
chown -R oracle:oinstall /home/oracle/backup 
chown -R oracle:oinstall /home/oracle/oraInventory
chmod -R 775 /var/app

设置环境变量(必须要设置在oracle用户的家目录下,可以su - oracle进入再修改,也可以用如下方法)
vim /home/oracle/.bash_profile
export ORACLE_BASE=/var/app
exportORACLE_HOME=$ORACLE_BASE/oracle/product/11.2.0/dbhome_1
export ORACLE_SID=ora11g
export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib
 
source /home/oracle/.bash_profile    //环境变量生效

安装
解压安装包,注意切换用户,注意安装解压软件
yum install -y unzip zip
su - oracle
cd /var/app/oracle
unzip linux.x64_11gR2_database_1of2.zip
unzip linux.x64_11gR2_database_2of2.zip

解压后得到database目录,其中包含response目录,该目录中有三个rsp文件,用来作为静默安装时的应答文件的模板。三个文件作用分别是:
db_install.rsp:安装应答
dbca.rsp:创建数据库应答
netca.rsp:建立监听、本地服务名等网络设置的应答

修改配置文件,安装oracle软件
复制一份模板,添加备份
cp -R /var/app/oracle/database/response /home/oracle

修改后的静默安装配置文件db_install.rsp,(如果oracle用户没有操作文件的权限,可使用root用户修改该文件,保存退出即可),修改相关的配置项,修改后的文件内容如下。
less /var/app/oracle/database/response/db_install.rsp |grep -v "#"|grep -v "^$"
(照着下面结果一一对应)
oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v11_2_0
oracle.install.option=INSTALL_DB_SWONLY
ORACLE_HOSTNAME=bigdata06
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/var/app/oracle/oraInventory
SELECTED_LANGUAGES=en,zh_CN
ORACLE_HOME=/var/app/oracle/product/11.2.0/dbhome_1
ORACLE_BASE=/var/app/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.isCustomInstall=false
oracle.install.db.customComponents=oracle.server:11.2.0.1.0,oracle.sysman.ccr:10.2.7.0.0,oracle.xdk:11.2.0.1.0,oracle.rdbms.oci:11.2.0.1.0,oracle.network:11.2.0.1.0,oracle.network.listener:11.2.0.1.0,oracle.rdbms:11.2.0.1.0,oracle.options:11.2.0.1.0,oracle.rdbms.partitioning:11.2.0.1.0,oracle.oraolap:11.2.0.1.0,oracle.rdbms.dm:11.2.0.1.0,oracle.rdbms.dv:11.2.0.1.0,orcle.rdbms.lbac:11.2.0.1.0,oracle.rdbms.rat:11.2.0.1.0
oracle.install.db.DBA_GROUP=dba
oracle.install.db.OPER_GROUP=oinstall
oracle.install.db.CLUSTER_NODES=
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE
oracle.install.db.config.starterdb.globalDBName=ora11g
oracle.install.db.config.starterdb.SID=ora11g
oracle.install.db.config.starterdb.characterSet=AL32UTF8
oracle.install.db.config.starterdb.memoryOption=true
oracle.install.db.config.starterdb.memoryLimit=1500
oracle.install.db.config.starterdb.installExampleSchemas=false
oracle.install.db.config.starterdb.enableSecuritySettings=true
oracle.install.db.config.starterdb.password.ALL=oracle
oracle.install.db.config.starterdb.password.SYS=
oracle.install.db.config.starterdb.password.SYSTEM=
oracle.install.db.config.starterdb.password.SYSMAN=
oracle.install.db.config.starterdb.password.DBSNMP=
oracle.install.db.config.starterdb.control=DB_CONTROL
oracle.install.db.config.starterdb.gridcontrol.gridControlServiceURL=
oracle.install.db.config.starterdb.dbcontrol.enableEmailNotification=false
oracle.install.db.config.starterdb.dbcontrol.emailAddress=
oracle.install.db.config.starterdb.dbcontrol.SMTPServer=
oracle.install.db.config.starterdb.automatedBackup.enable=false
oracle.install.db.config.starterdb.automatedBackup.osuid=
oracle.install.db.config.starterdb.automatedBackup.ospwd=
oracle.install.db.config.starterdb.storageType=
oracle.install.db.config.starterdb.fileSystemStorage.dataLocation=
oracle.install.db.config.starterdb.fileSystemStorage.recoveryLocation=
oracle.install.db.config.asm.diskGroup=
oracle.install.db.config.asm.ASMSNMPPassword=
MYORACLESUPPORT_USERNAME=
MYORACLESUPPORT_PASSWORD=
SECURITY_UPDATES_VIA_MYORACLESUPPORT=
DECLINE_SECURITY_UPDATES=true //一定要设为 true
PROXY_HOST=
PROXY_PORT=
PROXY_USER=
PROXY_PWD=


开始静默安装
cd /var/app/oracle/database
./runInstaller -silent -responseFile /var/app/oracle/database/response/db_install.rsp
查看安装进度
tail -f cd /var/app/oracle/oraInventory/logs/installActions*log

当安装界面出现如下信息的时候,先不要动
The installation of Oracle Database 11g was successful.
.....................
....................
As a root user, execute the following script(s):
 1. /var/app/oracle/oraInventory/orainstRoot.sh
 2. /var/app/oracle/product/11.2.0/dbhome_1/root.sh

Successfully Setup Software.

在新打开的客户端使用root登录的窗口中执行下面的脚本
/var/app/oracle/oraInventory/orainstRoot.sh
/var/app/oracle/product/11.2.0/dbhome_1/root.sh
执行完上面的脚本后回到安装界面按下Enter键以继续

配置oracle监听

3.4.1、运行监听文件
cd /var/app/oracle/database/response
netca /silent /responsefile /var/app/oracle/database/response/netca.rsp
成功运行后,在/var/app/oracle/product/11.2.0/dbhome_1/network/admin目录下
生成sqlnet.ora和listener.ora两个文件。

netstat -tlnp | grep 1521 命令,看到监听器已经在1521端口
如果监听没有启动,则手动启动监听程序。
/var/app/oracle/product/11.2.0/dbhome_1/bin/lsnrctl start LISTENER

配置oracle数据库
修改建库配置文件
 vim /var/app/oracle/database/response/dbca.rsp
GDBNAME = "ora11g.dg01"   //78行 全局数据库的名字=SID+主机域名
SID="ora11g"   //149行 对应的实例名字(环境变量export ORACLE_SID=ora11g配置相同,否则出现错误)
SYSPASSWORD = "oracle"    //190行
SYSTEMPASSWORD = "oracle"   //200行
CHARACTERSET="AL32UTF8" //415行 编码,字符集,重要!!! 建库后一般不能更改,所以建库前要确定清楚
NATIONALCHARACTERSET="UTF8" //425行 编码

创建dbca数据库
$ORACLE_HOME/bin/dbca -silent -responseFile /var/app/oracle/database/response/dbca.rsp

启动数据库
进入oracle SQL命令行
sqlplus / as sysdba

注意事项
需注意ORACLE_SID的问题,确认静默dbca建库时配置(SID="ora11g"//149行 )
与环境变量export ORACLE_SID=ora11g配置相同,否则出现错误。
错误提示:
ORA-01078: failure in processing system parameters
LRM-00109: could not open parameter file '/var/app/oracle/product/11.2.0/dbhome_1/dbs/initxtwl.ora'


安装ruby(方法有待实验)
参考:https://blog.csdn.net/zhanngle/article/details/51224934
https://www.jianshu.com/p/38afa54a1093
菜鸟教程学习:http://www.runoob.com/ruby/ruby-installation-unix.html

安装rvm
参考:https://ruby-china.org/wiki/install_ruby_guide
gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
curl -sSL https://get.rvm.io | bash -s stable
失败可能是需要导入加密算法
curl -sSL https://rvm.io/mpapis.asc | gpg2 --import -
正确安装rvm以后,当前命令窗口激活rvm:
source /etc/profile.d/rvm.sh
rvm -v

开始安装
cd /usr/local/
tar -xvzf ruby-2.5.1.tgz
cd ruby-2.5.1
现在,配置并编译源代码,如下所示:
./configure
make
make install
验证:
ruby -v
ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-linux]
gem -v
2.7.6
安装rails
参考:https://www.cnblogs.com/lazyboy1/p/4962955.html

查看gem源
gem source
删除源,
gem sources -r
添加(不安装openssl也可,我是用的http,不是https)
gem sources -a http://gems.ruby-china.com
安装
gem install rails
查看是否安装成功
rails -v

salt
yum安装包下载地址:http://repo.saltstack.com/yum/redhat/
缓存salt的源码包参考:https://repo.saltstack.com/2016.11.html#rhel
salt中文学习
http://www.saltstack.cn/projects/cssug-kb/wiki/Dive-into-saltstack
salt
安装 yum -y install salt-master
修改master/etc/salt/master
找到以下配置 
#file_roots:
#  base:
#    - /srv/salt

#pillar_roots:
#  base:
#    - /srv/pillar

将注释去掉,注意base前两个空格及 - /srv/前四个空格
启动服务 service salt-master start
安装minion端
修改minion端/etc/salt/mininon
vim /etc/salt/minion
#master: server 修改为
master: 192.168.0.27
#id
修改为
id: 192.168.0.27
启动服务
测试通信salt "*" test.ping
执行具体命令 salt "*" cmd.run "iptables -nL"

重新添加认证如下
先关闭minion端服务service salt-minion stop
请看minion端密钥 /etc/salt/pki/minion
修改配置文件 /etc/salt/minion
service salt-minion start
master端查看所有授权未授权的节点salt-key
master端接受密钥salt-key -A
master端查看salt-key -L

salt-ssh
参考: https://www.cnblogs.com/kevingrace/p/6379141.html

zabbix
yum安装包下载地址:https://repo.zabbix.com/zabbix/
缓存zabbix包:https://www.zabbix.com/download?zabbix=3.4&os_distribution=centos&os_version=7&db=MySQL

安装参考:https://www.cnblogs.com/rnckty/p/7650978.html
官方参考: https://www.zabbix.com/download?zabbix=3.4&os_distribution=centos&os_version=7&db=MySQL
https://www.zabbix.com/documentation/3.4/manual/installation/install#installing_frontend

yum -y install net-snmp-devel libxml2-devel libcurl-deve libevent libevent-devel gcc curl-devel

制作zabbix agent rpm包
https://www.jianshu.com/p/4c852b195b10

使用ansible批量部署zabbix agent端
参考:http://blog.51cto.com/3381847248/2053858

客户端:systemctl status zabbix_agentd
服务端:systemctl status zabbix-server

jenkins
Jenkins服务安装配置
1.Jenkins环境
Java -version 查看版本信息

touch jenkins.repo
[jenkins]
name=jenkins
baseurl=http://192.168.1.32:88/jenkins/
gpgcheck=0
enabled=1
jenkins安装 yum install jenkins

jenkins配置文件地址/etc/sysconfig/jenkins
修改配置
JENKINS_USER="root"
JENKINS_PORT="81"
JENKINS_LISTEN_ADDRESS="192.168.1.36"

把plugins中的所有插件上传到/var/lib/jenkins/plugins下

启动jenkins /etc/init.d/jenkins start
如果Jenkins无法启动,检查/etc/init.d/jenkins文件里的本地java路径
在candidates中添加/usr/java/jdk1.8.0_181/bin/java
再次尝试重新启动(centos7中可能会出现warning错误,只需要根据提示systemctl daemon-reload,再启动jenkin就可以了)

网页登陆jenkins(密码在/var/lib/jenkins/secrets/initialAdminPassword)
配置全局安全配置中 代理(TCP port for JNLP agents) 设置随机选取

安装maven 安装包上传至/opt/soft下
tar vxf apache-maven-3.3.9-bin.tar.gz
添加环境变量
export MAVEN_HOME=/opt/soft/apache-maven-3.3.9
export PATH=$PATH:$JAVA_HOME/bin:$MAVEN_HOME/bin

source /etc/profile
mvn -version

安装git yum install git

进入jenkins页面
在系统配置里面gitlab勾号去掉
配置全局工具配置

maven configuration
settings file in filesystem
/opt/soft/apache-maven-3.3.9/conf/settings.xml
global settings file on filesystem
/opt/soft/apache-maven-3.3.9/conf/settings.xml

JDK(去掉自动安装)
别名 jdk1.8
JAVA_HOME /usr/java/jdk1.8.0_181

Git
Name git1.7.1
Path to Git executable /usr/bin/git

Maven(去掉自动安装)
Name maven3.3.9
MAVEN_HOME /opt/soft/apache-maven-3.3.9

python
yum -y groupinstall 'Development Tools'
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make 
yum -y install libffi-devel
下载 Python 源文件
$ wget --no-check-certificate https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tgz
# 注意:wget获取https的时候要加上:--no-check-certificate
tar -xzvf Python-3.7.0.tgz # 解压缩包
cd Python-3.7.0 # 进入解压目录
./configure
make
make install
如果安装有错误需要重新编译,要先make clean,然后再重新编译

一般成功安装完成python3,就会安装pip,如果没有,那就重新安装python
pip
参考:https://blog.csdn.net/onlyellow/article/details/78226531
从pip官网 https://pypi.python.org/pypi/pip 下载pip的源代码,然后解压源码包,再进行安装pip软件:

# tar -zxvf pip-9.0.1.tar.gz
# cd pip-9.0.1
解压完成进行安装pip
# python setup.py install
安装提示报错,少setuptools
从setuptools官网 https://pypi.python.org/pypi/setuptools下载setuptools源码包,并解压:
# unzip setuptools-38.2.3.zip
# cd setuptools-38.2.3
解压完成进行安装setuptools
# python setup.py install
再次进入到pip的解压目录下,再次安装pip,执行如下命令:
python setup.py install

ansible
https://blog.csdn.net/zhou75771217/article/details/82146870
https://blog.csdn.net/jssg_tzw/article/details/69388136
http://blog.51cto.com/75368/2141015?source=dra
自制yum源离线安装:https://blog.csdn.net/wwloo2008/article/details/79631902?utm_source=blogxgwz0

SVN
教程:https://www.cnblogs.com/Dev0ps/p/8342114.html
安装:https://blog.csdn.net/crossangles_2017/article/details/78553266

测试客户端访问
安装TortoiseSVN,一路next即可。
桌面右键SVN Checkout,填入地址svn://ip地址:9000/mynote
输入用户名和密码,输入即可。‘

docker
教程:https://baijiahao.baidu.com/s?id=1591887487395526427&wfr=spider&for=pc
安装一些必要的系统工具:
yum install -y yum-utils device-mapper-persistent-data lvm2
添加软件源信息:
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
安装 Docker-ce:
yum -y install docker-ce

container-selinux >= 2.9 这个报错是container-selinux版本低或者是没安装的原因
yum 安装container-selinux 一般的yum源又找不到这个包
需要安装epel源 才能yum安装container-selinux
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo  
yum install epel-release   #阿里云上的epel源
更新yum
yum makecache fast
然后yum install container-selinux

启动 Docker 后台服务
sudo systemctl start docker
测试运行 hello-world
docker run hello-world

拉取docker镜像
docker pull image_name
查看宿主机上的镜像,Docker镜像保存在/var/lib/docker目录下:
docker images
删除镜像
docker rmi docker.io/tomcat:7.0.77-jre7 或者 docker rmi b39c68b7af30
查看当前有哪些容器正在运行
docker ps
查看所有容器
docker ps -a

安装Compose:
curl -L https://github.com/docker/compose/releases/download/1.8.1/docker-compose-Linux-x86_64 > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
docker-compose --version

docker部署nginx
参考:https://www.cnblogs.com/wwzyy/p/8337965.html

k8s进行docker管理
参考:http://www.cnblogs.com/kevingrace/p/5575666.html
https://www.cnblogs.com/onlyworld/p/5116622.html

yum install -y kubernetes,如果报错
卸载docker-ce
1、查看安装过的docker:yum list installed | grep docker
2、卸载docker:yum remove -y docker-ce.x86_64 0:18.03.0.ce-1.el7.centos
3、删除容器镜像:rm -rf /var/lib/docker
再次安装kubernetes,安装成功,而且会自动安装docker


mysql主从
https://www.cnblogs.com/Dev0ps/p/7839041.html

主库设置
修改主库my.cnf,主要是设置个不一样的id,以及要同步的数据库的名字。
vim /etc/my.cnf
在[mysqld]添加如下内容:
log-bin = binlog //开启log-bin日志记录
binlog-do-db = mydata //mydata同步的数据库名字
server-id = 1 //从服务器改为非1

2)重启主库
systemctl restart mysqld
3)登录主库
mysql -u root -p
4)赋予从库权限账号,允许用户在主库上读取日志,命令如下:
mysql> grant replication slave on *.* to 'shinyinfo'@'192.168.128.%'identified by '!QAZ2wsx'; //允许192.168.128.0这个网络登录
mysql> flush privileges; //刷新
systemctl restart mysqld //一定要重启才生效
从库服务器测试连接:
mysql -u shinyinfo -p -h 192.168.128.157
Enter password:
Welcome to the MySQL monitor. Commands end with ; or g.
#锁主库表
mysql> flush tables with read lock;

#查看File和Postion日志点
mysql> show master status;
+---------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+---------------+----------+--------------+------------------+
| binlog.000003 | 106 | mydata | |
+---------------+----------+--------------+------------------+

导出mydata库:
mysqldump --master-data -uroot -p123 mydata > mydata.sql
数据不大通过ssh推送到从库:
scp mydata.sql root@192.168.128.158:/root

从库设置
创建mysqldata数据库:
mysql> create database mydata;
导入mydata.sql数据:
[root@localhost ~]# mysql -u root -p !QAZ2wsx mydata < /root/mydata.sql
修改/etc/my.cnf
注释从库日志记录如果还作为其他从服务要开启
#log-bin=mysql-bin
设置为2 只要不和主库一样就行
server-id = 2
重启服务:
systemctl restart mysqld
在从库上设置同步,这步也是最重要的。
设置连接MASTER MASTER_LOG_FILE为主库的File,MASTER_LOG_POS为主库的Position,命令如下所示:
注意此时一定要再次查看主库的File和Position已现在显示的为准不然同步失败。
mysql>stop slave;
mysql> change master to master_host='192.168.128.157',master_user='admin',master_password='redhat',master_log_file='binlog.000003',master_log_pos=331;
mysql>start slave;
查看从库的status状态:
mysql> show slave status G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.128.157
Master_User: admin
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: binlog.000003
Read_Master_Log_Pos: 331
Relay_Log_File: localhost-relay-bin.000002
Relay_Log_Pos: 248
Relay_Master_Log_File: binlog.000003
Slave_IO_Running: Yes
Slave_SQL_Running: Yes

#Slave_IO_Running:Yes(网络正常);Slave_SQL_Running:Yes(表结构正常),根据前面的MySQL主从同步的原理,这两个部分
必须都为YES(正常)才表示同步是成功的。


测试
主库解锁:
mysql>unlock tables;

主库上创建新表:
mysql> use mydata;
mysql> create table yy ( username varchar(20) not null);
从库上查看:

nginx反向代理,负载均衡
nginx1:192.168.68.41
tomcat1:192.168.68.43
tomcat2:192.168.68.45
配置nginx:
vim /etc/nginx/conf.d/default.conf
#负责压缩数据流
gzip on;
gzip_min_length 1000;
gzip_types text/plain text/css application/x-javascript;

#设定负载均衡的服务器列表
#weigth参数表示权值,权值越高被分配到的几率越大
upstream hello{
server 192.168.68.43:8080 weight=1;
server 192.168.68.45:8080 weight=1;
}

server {
#侦听的80端口
listen 80;
server_name localhost;
#设定查看Nginx状态的地址
location /nginxstatus{
stub_status on;
access_log on;
auth_basic "nginxstatus";
auth_basic_user_file htpasswd;
}
#匹配以jsp结尾的,tomcat的网页文件是以jsp结尾
location / {
index index.jsp;
proxy_pass http://hello; #在这里设置一个代理,和upstream的名字一样
#以下是一些反向代理的配置可删除
proxy_redirect off;
#后端的Web服务器可以通过X-Forwarded-For获取用户真实IP
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 10m; #允许客户端请求的最大单文件字节数
client_body_buffer_size 128k; #缓冲区代理缓冲用户端请求的最大字节数
proxy_connect_timeout 300; #nginx跟后端服务器连接超时时间(代理连接超时)
proxy_send_timeout 300; #后端服务器数据回传时间(代理发送超时)
proxy_read_timeout 300; #连接成功后,后端服务器响应时间(代理接收超时)
proxy_buffer_size 4k; #设置代理服务器(nginx)保存用户头信息的缓冲区大小
proxy_buffers 4 32k; #proxy_buffers缓冲区,网页平均在32k以下的话,这样设置
proxy_busy_buffers_size 64k; #高负荷下缓冲大小(proxy_buffers*2)
proxy_temp_file_write_size 64k; #设定缓存文件夹大小,大于这个值,将从upstream服务器传
}
}

启动:nginx

启动nginx后,访问http://192.168.68.41/test/
会被导航到http://192.168.68.43:8080/test/ 和http://192.168.68.45:8080/test/
从而实现了负载均衡和避免单点故障。

nginx端口转发

参考:https://www.cnblogs.com/zhaoyingjie/p/7248678.html

系统初始化制定
参考:https://blog.csdn.net/chengxuyuanyonghu/article/details/47283399
https://blog.csdn.net/yangbodong22011/article/details/54175193
定义配置NTP函数
function ntp(){
/usr/bin/yum -y install ntp
#修改配置文件
echo '' >/etc/ntp.conf
cat >>/etc/ntp.conf << EOF
driftfile /var/lib/ntp/drift
restrict default nomodify notrap nopeer noquery
restrict 127.0.0.1
restrict ::1
server 192.168.2.136
includefile /etc/ntp/crypto/pw
keys /etc/ntp/keys
disable monitor
EOF
#同步hwclock
cat >>/etc/sysconfig/ntpd<<EOF
#Command line options for ntpd
SYNC_HWCLOCK=yes
OPTIONS="-g"
EOF
#使用ntpdate命令校验时间
/usr/sbin/ntpdate 192.168.2.136 && /usr/sbin/hwclock -w
/usr/bin/systemctl stop chronyd &> /dev/null
/usr/bin/systemctl disable chronyd &> /dev/null
/usr/bin/systemctl start ntpd &> /dev/null
/usr/bin/systemctl enable ntpd &> /dev/null
}

原文地址:https://www.cnblogs.com/lndr/p/10382225.html