基础软件搭建
1、dnsmasq
① 安装dnsmasq
yum install -y dnsmasq
② 修改配置文件
vim /etc/dnsmasq.conf
strict-order #严格按照resolv.conf顺序进行查找
listen-address=127.0.0.1,192.168.115.120 #设置能使用此dns服务的机器 去掉则全部可用
resolv-file=/etc/dnsmasq.d/resolv.dnsmasq.conf #指定resolv-fele路径 默认/etc/resolv.conf
addn-hosts=/etc/dnsmasq.d/dnsmasq.hosts #额外增加host路径
conf-dir=/etc/dnsmasq.d #制定配置文件路径 可制定多个
:wq
③ 在resolv中设置真正的那么server
vim /etc/dnsmasq.d/resolv.dnsmasq.conf #设置真正的nameserver
nameserver 8.8.8.8
nameserver 114.114.114.114
wq
④ 设置额外hosts
cp /etc/hosts /etc/dnsmasq.d/dnsmasq.hosts
⑤ 添加需要解析的域名及指向的地址(指向多未nginx,apache等)
vim /dnsmasq.d/dnsmasq.conf
address=/ad.youku.com/127.0.0.1 #指向本机,可屏蔽网页广告
address=/ad.iqiyi.com/127.0.0.1
address=/freehao123.com/123.123.123.123 #指向123.123.123.123
wq
⑥ 测试
dnsmasq -test #检查语法
systemctl restart dnsmasq.service
dig ad.youku.com
2、yum
由于redhat6.5的yum功能是需要注册费用的,所以自带的yum并不可用,想要使用免费的yum,可以用Centos6的yum源,配置自己的yum源。(可以先用yum list检查yum源是否可用,如果出现很多安装包,说明可用,则可以跳过这一步,如果报错说明不可以)
① 查看已安装的yum包:rpm -qa|grep yum
② 卸载yum软件包:rpm -qa|grep yum|xargs rpm -e --nodeps
③ 下载yum安装文件(注意机器是32位还是64位的):
wget http://mirrors.163.com/centos/6/os/x86_64/Packages/python-urlgrabber-3.9.1-11.el6.noarch.rpm
wget http://mirrors.163.com/centos/6/os/x86_64/Packages/python-iniparse-0.3.1-2.1.el6.noarch.rpm
wget http://mirrors.163.com/centos/6/os/x86_64/Packages/yum-metadata-parser-1.1.2-16.el6.x86_64.rpm
wget http://mirrors.163.com/centos/6/os/x86_64/Packages/yum-3.2.29-81.el6.centos.noarch.rpm
wget http://mirrors.163.com/centos/6/os/x86_64/Packages/yum-plugin-fastestmirror-1.1.30-40.el6.noarch.rpm
④ 安装yum:
rpm -ivh python-urlgrabber-3.9.1-11.el6.noarch.rpm
rpm -ivh python-iniparse-0.3.1-2.1.el6.noarch.rpm
rpm -ivh yum-metadata-parser-1.1.2-16.el6.x86_64.rpm
rpm -ivh yum-plugin-fastestmirror-1.1.30-40.el6.noarch.rpm yum-3.2.29-81.el6.centos.noarch.rpm (这两个要一起安装,有依赖关系)
⑤ 更改成163的yum源:
进入源目录:cd /etc/yum.repos.d/
下载163源:wget http://mirrors.163.com/.help/CentOS6-Base-163.repo
把文件里面的$releasever全部替换为版本号6:sed -i 's#$releasever#6#g' CentOS6-Base-163.repo
⑥ 清除原有缓存:yum clean all
⑦ 重建缓存,以提高搜索安装软件的速度:yum makecache
⑧ 更新系统:yum update
⑨ gcc等环境安装,后续有些软件安装需要这些基础环境
gcc安装:yum install gcc-c++
PCRE pcre-devel 安装:yum install -y pcre pcre-devel
zlib 安装:yum install -y zlib zlib-devel
OpenSSL 安装:yum install -y openssl openssl-devel
3、JDK安装
① 由于jdk下载需要接受条款的原因,所以下载后使用FlashFXP从本地上传到服务器。
② 进入/usr/local/src,解压jdk:tar -zxvf jdk-8u172-linux-x64.tar.gz
③ 将解压的jdk移动到/usr/local/:mv jdk1.8.0_172 /usr/local/
④ 配置环境变量:
$ vim /etc/profile
在最后添加如下环境变量:
export JAVA_HOME=/usr/local/jdk1.8.0_172
export JRE_HOME=/usr/local/jdk1.8.0_172/jre
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
保存退出后输入命令使配置生效:source /etc/profile
⑤ 验证jdk:java –version
4、Tomcat安装
① 准备tomcat:
下载:wget http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.30/bin/apache-tomcat-8.5.30.tar.gz
解压:tar –zxvf apache-tomcat-8.5.30.tar.gz
将tomcat复制一份到/local/src/下,作为项目的服务器:cp -r apache-tomcat-8.5.30 /usr/src/tomcat-ljz
② 修改配置:
修改/conf/server.xml,在8080端口Connector增加两项。
修改/conf/context.xml,增加数据源
修改/bin/catalina.sh,在开头增加如下配置
③ 进入/usr/src/tomcal-ljz/bin
启动Tomcat:./startup.sh
关闭Tomcat:./shutdown.sh
④ Linxu防火墙设置:
在/etc/sysconfig/iptables中设置允许端口:vim /etc/sysconfig/iptables
-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 8080 -j ACCEPT
重启防火墙:service iptables restart;
之后就可以从虚拟机外部访问80/8080端口了
5、Nginx安装
① 准备nginx:
下载:wget http://nginx.org/download/nginx-1.8.1.tar.gz
解压:tar -zxvf nginx-1.8.1.tar.gz
进入目录:cd nginx-1.8.1
② 配置nginx:
./configure --prefix=/usr/src/nginx --with-http_stub_status_module --with-http_ssl_module
--prefix=PATH :指定 nginx 的安装目录
--with-http_ssl_module :使用https协议模块
--with-http_stub_status_module :用来监控 Nginx 的当前状态
③ 编译安装:make && make install
④ 查看nginx版本:
进入安装目录:cd /usr/src/nginx/sbin
查看版本:./nginx -v
⑤ 配置nginx.conf,进入conf目录:cd /usr/src/nginx/conf
将原始nginx.conf备份:cp nginx.conf nginx.conf.bak
使用nginx.conf替换/usr/src/nginx/conf/nginx.conf
创建门户网站目录:mkdir /usr/src/ljzsg_mt
检测配置文件的正确性:./nginx –t
⑥ 设置开机启动
编辑/etc/rc.local:vim /etc/rc.local
添加一行:/usr/src/nginx/sbin/nginx
之后,开机会自动启动nginx
⑦ nginx 命令
进入nginx目录:cd /usr/src/nginx/sbin
启动服务:./nginx
停止服务:./nginx –s stop
重启服务:./nginx –s reopen
重新载入配置文件:./nginx –s reload
###nginx开启索引功能
location / {
root /data/www/file //指定实际目录绝对路径;
autoindex on; //开启目录浏览功能;
autoindex_exact_size off; //关闭详细文件大小统计,让文件大小显示MB,GB单位,默认为b;
autoindex_localtime on; //开启以服务器本地时区显示文件修改日期!
}
####apache开启索引功能
Alias / ”/data/www/file”
< Directory ”/data/www/file” >
Options Indexes //开启目录列表索引模式
Order allow,deny
IndexOptions NameWidth = 25 Charset = UTF -8 //设定文件名显示长度,文字字符编码
Allow from all
</ Directory >
6、Node安装
① 准备node
下载:wget https://nodejs.org/dist/v8.9.4/node-v8.9.4-linux-x64.tar.gz
解压:tar –zxvf node-v8.9.4-linux-x64.tar.gz
移动到/usr/local/:mv node-v8.9.4-linux-x64 /usr/local/node-v8.9.4
② 创建软链接:
ln -s /usr/local/node-v8.9.4/bin/node /usr/local/bin/node
ln -s /usr/local/node-v8.9.4/bin/npm /usr/local/bin/npm
验证:
node -v
npm -v
7、Redis安装
① 准备Redis
下载:wget http://download.redis.io/releases/redis-4.0.6.tar.gz
解压:tar -zxvf redis-4.0.6.tar.gz
移动到/usr/local/下:mv redis-4.0.6 /usr/local/ redis
进入目录:cd /usr/local/redis
② 编译:make
③ 修改配置文件:vim redis.conf
将redis设置为守护进程,不然启动时会一直占着终端
daemonize yes
关闭守护模式,否则外部访问不了redis,正式环境可不改.
protected-mode no
注释掉bind,否则其它地址无法访问redis
④ 设置开机启动
编辑/etc/rc.local:vim /etc/rc.local
添加一行:/usr/local/redis/src/redis-server /usr/local/redis/redis.conf
之后,开机会自动启动redis
⑤ 启动/停止服务:
进入redis目录:cd /usr/local/redis/src
启动服务:./redis-server ../redis.conf
停止服务:./redis-cli shutdown
8、Git安装
① 准备Git
下载:wget https://www.kernel.org/pub/software/scm/git/git-2.9.4.tar.gz
解压:tar -zxvf git-2.9.4.tar.gz
② 安装编译Git时需要的包
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel
yum install gcc perl-ExtUtils-MakeMaker
③ 删除已有的git:yum remove git
④ 编译安装
cd /usr/local/src/git-2.9.4
安装到/usr/local/git目录:./configure --prefix=/usr/local/git
编译安装:make && make install
⑤ 创建软链并测试
ln -s /usr/local/git/bin/* /usr/local/bin/
测试git:git --version
9、Maven安装
① 准备maven
下载:wget http://mirror.bit.edu.cn/apache/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz
解压:tar -zxvf apache-maven-3.3.9-bin.tar.gz
移动到/usr/local:mv apache-maven-3.3.9 /usr/local/maven3
② 添加环境变量
vim /etc/profile
在最后添加如下两行:
export MAVEN_HOME=/usr/local/maven3
export PATH=$MAVEN_HOME/bin:$PATH
使环境变量生效:source /etc/profile
③ 检验maven:mvn -v
10、Jenkins安装
将jenkins war包放入Tomcat中托管运行,可在https://jenkins.io/download/下载war包。
① 准备Jenkins Tomcat容器
复制一份tomcat:mv /usr/local/src/apache-tomcat-8.5.30 /usr/src/tomcat-jenkins-8090
设置端口为8090:
cd tomcat-jenkins-8090/conf/
vim server.xml
修改端口,避免和ljzsg服务器的端口冲突
开放8090端口
vim /etc/sysconfig/iptables
添加:-A INPUT -m state --state NEW -m tcp -p tcp --dport 8090 -j ACCEPT
重启防火墙:service iptables restart
② 将jenkins war包放入webapps目录下
③ 启动tomcat:
cd tomcat-jenkins-8090/bin/
./startup.sh
部署服务
① 访问jenkins网站做一些配置:http://192.168.0.0:8090/jenkins/
显示解锁jenkins页面:第一次运行Jenkins时,会在~目录下创建一个.jenkins的隐藏文件夹来存储Jenkins的配置文件和插件库,初始化的用户名和密码也在里边,登录时需要用到。从/root/.jenkins/secrets/initialAdminPassword复制密码并填入继续。
② 登录成功之后跳转到插件选择页面。Jenkins作为一个框架,里边很多功能的集成是基于插件的,比如git插件可以从git获取源码,maven插件可以执行maven命令等等。我们选择左边的,自动安装可支持的插件。重要插件安装失败可以重试几次,或者手动安装。
③ 创建管理员账户
④ 创建任务
选择创建一个新任务,输入项目名称,勾选“构建一个自由风格的软件项目”然后点击确定,进入详细配置页面。
⑤ General配置
⑥ 选择git进行源码管理,输入远程仓库地址,点击Add添加git账号。
⑦ 构建触发器
构建触发器是指在什么条件下自动触发构建,这里我们不配置,手动触发构建。
⑧ 构建配置
选择Excecute shell
添加如下命令,打包项目:
LJZSG_HOME="/root/.jenkins/workspace/ljzsg_mt"
cd $LJZSG_HOME
mvn clean package
构建完成之后,将war包复制到tomcat下,并重启项目
# LJZSG根目录
LJZSG_HOME="/root/.jenkins/workspace/ljzsg_mt"
#Tomcat根目录
TOMCAT_HOME="/usr/src/tomcat-ljz"
#端口
TOMCAT_PORT=8080
#TOMCAT_PID用于检测Tomcat是否在运行
TOMCAT_PID="`lsof -n -P -t -i :${TOMCAT_PORT}`"
#如果Tomcat还在运行
warRootPath="${TOMCAT_HOME}/webapps/ROOT/"
warPath="${TOMCAT_HOME}/webapps/core/"
warFile="${TOMCAT_HOME}/webapps/core.war"
#如果文件或者文件夹存在则删除
deleteWhenExist(){
if [ -e $1 ]; then
rm -rf $1
fi
}
#如果Tomcat在运行,干掉服务
if [ -n "$TOMCAT_PID" ]; then
kill -9 $TOMCAT_PID
fi
deleteWhenExist ${warRootPath}
deleteWhenExist ${warPath}
deleteWhenExist ${warFile}
#拷贝新编译的包到Tomcat
cp $LJZSG_HOME/core/target/core.war ${TOMCAT_HOME}/webapps/
#启动Tomcat
${TOMCAT_HOME}/bin/startup.sh
⑨ 构建项目
第一次会下载maven插件和项目依赖的包,会比较慢,可手动上传jar包到maven仓库。
11、gitlab
(1)安装gitlab yum源
vim /etc/yum.repos.d/gitlab-ce.repo
[gitlab-ce]
name=Gitlab CE Repository
baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el$releasever/
gpgcheck=0
enabled=1
wq
yum makecache
(2)安装gitlab包
yum install gitlab-ce
(3)修改配置
vim /etc/gitlab/gitlab.rb
external_url ‘172.20.100.56’ #需改url地址
端口默认未8080,如果已使用,自定义其他端口
wq
(4)重新启动
gitlab-ctl reconfigure
gitlab-ctl restart
(4)输入网站验证(配置中地址)
http://172.20.100.56 #查看是否正常
(5)初始化admin密码
su - git
gitlab-rails console production
u=User.where(id:1).first
u.password='12345678'
u.password_confirmation='12345678'
u.save #显示true为修改成功
12、dhcp
(1)DHCP工作过程
DHCP客户机在启动时,会搜寻网络中是否存在DHCP服务器。如果找到,则给DHCP服务器发送一个请求。DHCP服务器接到请求后,为DHCP客户机选择TCP/IP配置的参数,并把这些参数发送给客户端。 如果已配置冲突检测设置,则DHCP服务器在将租约中的地址提供给客户机之前会使用Ping测试作用域中每个可用地址的连通性。这可确保提供给客户的每个IP地址都没有被使用手动TCP/IP配置的另一台非DHCP计算机使用。
根据客户端是否第一次登录网络,DHCP的工作形式会有所不同。
(1)安装dhcp
yum search dhcp
yum -y install dhcp
(2)更改配置
cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
vim /etc/dhcp/dhcpd.conf
7 option domain-name "server.com"; #域名:参见/etc/resolv.conf
8 option domain-name-servers 172.25.10.254; #指定dns服务器,多台用逗号隔开。
30 subnet 172.25.10.0 netmask 255.255.255.0 { ##指定子网络及子网掩码
31 range 172.25.10.10 172.25.10.20; ##指定IP范围
32 option routers 172.25.10.254 ##指定默认网关
33 }
34## 删除27,28行,34行及以后
wq
(3)重启服务
systemctl start dhcpd
(4)客户端测试
<1>修改网络参数
vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=dhcp ###关键部位为dhcp
ONBOOT=yes
.....
wq
<2>重启网络
systemctl restart network #失败可能是防火墙原因
ip a s eth0
<3>配置之后会修改的文件:
/etc/resolv.conf #dns
route -n #路由查看
/var/lib/dhcpd/dhcpd.leases #记录的dhcp信息
13、svn
(1)安装软件
yum -y install subversion
安装位置查看:rpm -ql subversion 或通过find查找
(2)创建版本目录(自定义)
mkdir /home/svn
(3)创建svn版本库(自定义)
svnadmin create /home/svn/svn
进入版本库
cd /home/svn/svn
(4)修改配置
cd conf
anthz:用户权限管理
passwd:用户账号密码管理
svnserve.conf:服务器配置文件
vim authz
[groups] #定义组的用户
admin = admin
developer = test1,test2
[/] #admin组下面的用户对svn版本有读写权限,有些写为[\],未深究
@admin = rw
[projectA:/dir1] #配置projectA版本库下dir1目录的访问权限
test1 = rw #test1 读写权限
test2 = #test2 没访问权限
[projectA:/]
test1 = rw #test1 对projectA版本库读写权限
test2 = r #test2 对projectA版本库下可读权限,
wq
vim passwd
账号 = 密码
admin=123456 #admin用户密码为123456
test1=654321
test2 =abcdef
wq
vim svnserve.conf
[general]
anon-access = read #匿名读权限
auth-access = write #用户登陆写权限
password-db = passwd #使用passwd文件
authz-db = authz #使用authz文件
(5)启动服务器
防火墙关闭或设置
systemctl stop firewall && setenforce 0
或iptables -I INPUT -p tcp --dport 3690 -j ACCEPT
svnserve -d -r /home/svn --listen-port 3690 #注意:设置为svn目录路径,可运行多个版本库 端口默认为3690
# 设置为svnserve -d -r /home/svn /svn 只能启用一个svn这个版本库
(6)客户端访问测试
svn://ip地址:3690/svn --username=test1
命令以及问题:
svn checkout #检出
svn commit -m “” #提交
svn diff #本地库与远程库作对比
svn update #更新本地库版本 也可制定版本更新 svn update -r6
svn status #查看工作副本的状态
svn add test.txt #增加test.txt到版本库中
svn revert test.txt #撤销test.xt的修改,回到未修改状态,回复目录需加-R选项
svn merge -r 22:21 test.txt #撤销一个版本的修改到21版本
svn log: 用来展示svn 的版本作者、日期、路径等等。
svn diff: 用来显示特定修改的行级详细信息。
svn cat: 取得在特定版本的某文件显示在当前屏幕。
svn list: 显示一个目录或某一版本存在的文件。
svn up :更新当前到最新版本
如:svn log -r 6:8 #查看两个版本之间的信息日志
svn log trunk/HelloWorld.html #查看某一文件的版本修改信息,也可查看版本号
svn log -l 5 -v #查看5条记录 查看目录需要加-v
svn list http://192.168.0.1/runoob01 #查看目录下文件
svn cat -r 版本号 rule.txt #查看某一版本的文件
svn copy trunk/ branches/my_branch #本地新建分支
svn merge ../branches/my_branch/ #合并分支到当前分支
svn copy trunk/ tags/v1.0 #创建标签tag
14、smtp
推荐:https://www.cnblogs.com/zydev/p/6307482.html
阿里云 Centos 6.5 32位
Postfix-2.8.12.tar.gz Postfix MTA(邮件传输代理)
Dovecot-2.1.8.tar.gz IMAP 和 POP3 邮件服务器
Postfixadmin-2.3.5.tar.gz 采用PHP编写的开源WEB邮箱及域名账号管理工具
Roundcubemail-0.8.1.tar.gz 采用PHP编写的开源IMAP邮件WEB客户端
安装过程
1.安装Postfix
yum -y install postfix
安装完成还需要替换系统自带的sendmail:
rpm -e sendmail
或者
yum remove sendmail
修改MTA(默认邮件传输代理)
alternatives --config mta
然后直接回车即可。
检查一下是不是已经设置成功了。
alternatives --display mta
第一行可以看到mta的状态。 例如:mat - status is manual.
2.安装Dovecot
yum -y install dovecot
3.配置Postfix
编辑/etc/postfix/main.cf,可以下载下来修改,也可以使用vi进行编辑:
vi /etc/postfix/main.cf
修改如下:
myhostname = mail.lomu.me # 75行: 取消注释,设置hostname
mydomain = lomu.me # 83行: 取消注释,设置域名
myorigin = $mydomain # 99行: 取消注释
inet_interfaces = all # 116行: 修改
inet_protocols = ipv4 # 119行: 推荐ipv4,如果支持ipv6,则可以为all
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain # 164行: 添加
mynetworks = 127.0.0.0/8, 10.0.0.0/24 # 264行: 取消注释,指定内网和本地的IP地址范围
home_mailbox = Maildir/ # 419行: 取消注释,邮件保存目录
smtpd_banner = $myhostname ESMTP # 571行: 添加
# 添加到最后
message_size_limit = 10485760 # 规定邮件最大尺寸为10M
mailbox_size_limit = 1073741824 # 规定收件箱最大容量为1G
# SMTP认证
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymoussmtpd_sasl_local_domain = $myhostnamesmtpd_recipient_restrictions = permit_mynetworks,permit_auth_destination,permit_sasl_authenticated,reject
修改好了之后使用/etc/rc.d/init.d/postfix start开启postfix,使用chkconfig postfix on将postfix开机启动。
service postfix start
4.配置Dovecot
修改如下:
vi /etc/dovecot/dovecot.conf
listen = * # 26行: 如果不使用IPv6,请修改为*
vi /etc/dovecot/conf.d/10-auth.conf
disable_plaintext_auth = no # 9行: 取消注释并修改
auth_mechanisms = plain login # 97行: 添加
vi /etc/dovecot/conf.d/10-mail.conf
mail_location = maildir:~/Maildir # 30行: 取消注释并添加
vi /etc/dovecot/conf.d/10-master.conf
# 88-90行: 取消注释并添加# Postfix smtp验证
unix_listener /var/spool/postfix/private/auth {
mode = 0666
user = postfix
group = postfix
}
#####
/etc/rc.d/init.d/dovecot start #启动
chkconfig dovecot on
到这里,我们的邮件服务器就已经搭建成功了。
5.域名解析
最后别忘了还需要进行域名解析工作。
添加一个子域名mail,A记录解析到服务器IP。
再添加一个MX记录,主机记录为空,记录值为上面解析的二级域名mail.lomu.me,优先级10。
注意:解析生效可能需要一段时间。
6.邮箱使用
一切都弄好以后,就可以使用Foxmail等第三方软件来收发邮件了。在这里需要说一下,系统用户就是邮件的用户,例如root,就是一个邮箱用户,邮箱是root@domain.com,密码就是root的密码,所以需要创建用户,只要使用useradd创建用户,再使用passwd设置密码。
好了,假如我们创建一个admin的用户:
# 创建用户
useradd admin#设置密码,会要求输入两次密码
passwd admin
接下来登录Foxmail,如图:
点击创建,进入:
这里需要注意,邮件账号是admin,并不是邮箱,另外我们没有配置SSL,所以也不要勾选。 接下来点击创建,如果一切正常的话,你已经成功了。
15、nextclould
16、rsyslog
17、elk
18、nginx+lua
19、flume
20、ansible一、配置epel源
yum install http://mirrors.163.com/centos/7.4.1708/extras/x86_64/Packages/epel-release-7-9.noarch.rpm
二、安装ansible
yum install -y ansible
三、验证安装
ansible --version
发现有个警告 需要升级gmp 解决方法如下
1、安装依赖
yum install gcc python-devel python-pip
2、升级软件
pip install --upgrade PyCrypto
pip install pycrypto-on-pypi
#注意最后一行 成功安装
3、再次验证ansible
ansible --version
至此 ansible安装成功
###ansible命令
ansible-doc #列出已安装的模块
ansible-doc -l 查看某模块的具体用法
# ansible-doc -s command
absible-galaxy #
ansible-galaxy 指令用于方便的从https://galaxy.ansible.com/ 站点下载第三方扩展模块,我们可以形象的理解其类似于centos下的yum、python下的pip或easy_install 。如下示例:
ansible-galaxy install aeriscloud.docker
ansible-link
ansible-lint是对playbook的语法进行检查的一个工具。用法是ansible-lint playbook.yml 。
ansible-playbook
该指令是使用最多的指令,其通过读取playbook 文件后,执行相应的动作。
ansible-pull
适用于以下场景:你有数量巨大的机器需要配置,即使使用非常高的线程还是要花费很多时间;你要在一个没有网络连接的机器上运行Anisble,比如在启动之后安装。
ansible-vault
注意:重点是ansible和ansible-playbook
##ansible 配置文件
/etc/ansible/ansible.cfg
ansible模块 :https://blog.csdn.net/magerguo/article/details/79496593
21、vpn
pptp vpn
加入yum源
rpm -Uvh http://poptop.sourceforge.net/yum/stable/rhel6/pptp-release-current.noarch.rpm
1)安装软件包(软件包参考lnmp_soft)
[root@proxy ~]# yum localinstall pptpd
[root@proxy ~]# rpm -qc pptpd
/etc/ppp/options.pptpd
/etc/pptpd.conf
/etc/sysconfig/pptpd
2)修改配置文件
[root@proxy ~]# vim /etc/pptpd.conf
.. ..
localip 201.1.2.5 //服务器本地IP
remoteip 192.168.3.1-50 //分配给客户端的IP池
[root@proxy ~]# vim /etc/ppp/options.pptpd
require-mppe-128 //使用MPPE加密数据
ms-dns 8.8.8.8 //DNS服务器
[root@proxy ~]# vim /etc/ppp/chap-secrets //修改账户配置文件
jacob * 123456 *
//用户名 服务器标记 密码 客户端
[root@proxy ~]# echo "1" > /proc/sys/net/ipv4/ip_forward //开启路由转发
3)启动服务
[root@proxy ~]# systemctl start pptpd
[root@proxy ~]# systemctl enable pptpd
[root@proxy ~]# firewall-cmd --set-default-zone=trusted
4)FQ设置(非必需操作)
[root@proxy ~]# iptables -t nat -A POSTROUTING -s 192.168.3.0/24 \
> -j SNAT --to-source 201.1.2.5
客户端设置
启动一台Windows虚拟机,将虚拟机网卡桥接到public2,配置IP地址为201.1.2.20。
新建网络连接(具体操作如图-3所示),输入VPN服务器账户与密码(具体操作如图-4所示),连接VPN并测试网络连通性(如图-5所示)。
图-3
图-4
创建L2TP+IPSec VPN
问题
本案例要求搭建一个L2TP+IPSec VPN环境,并测试该VPN网络是否能够正常通讯,具体要求如下:
- 使用L2TP协议创建一个支持身份验证与加密的隧道连接
- 使用IPSec对数据进行加密
- 为客户端分配192.168.3.0/24的地址池
- 客户端连接的用户名为:jacob,密码为:123456
- 预共享密钥为:randpass
方案
准备实验所需的虚拟机环境,实验环境所需要的主机及对应的IP设置列表如表-3所示,正确配置IP地址、主机名称,并且为每台主机配置YUM源。
表-3 主机列表
实验拓扑如图-6所示。
图-6
步骤
实现此案例需要按照如下步骤进行。
步骤一:部署IPSec服务
1)安装软件包
[root@vpn ~]# yum -y install libreswan
2)新建IPSec密钥验证配置文件
[root@vpn ~]# cat /etc/ipsec.conf //仅查看一下该主配置文件
nat_traversal=yes #在配置文件里加入这一行,充许传透nat建立l2tp连接
virtual_private=%v4:10.0.0.0/8,%v4:192.168.0.0/16,%v4:172.16.0.0/12,%v4:25.0.0.0/8,%v4:100.64.0.0/10 #允许的网段
include /etc/ipsec.d/*.conf
//加载该目录下的所有配置文件
[root@vpn ~]# vim /etc/ipsec.d/myipsec.conf //新建该文件 建立ipsec 与 l2tp 服务关联的配置文件:
conn IDC-PSK-NAT //有些为conn L2TP-PSK-NAT
rightsubnet=vhost:%priv &
nbsp; //允许建立的VPN虚拟网络
also=IDC-PSK-noNAT
conn IDC-PSK-noNAT
authby=secret &
nbsp; //加密认证
ike=3des-sha1;modp1024 &
nbsp; //算法
phase2alg=aes256-sha1;modp2048 &
nbsp; //算法
pfs=no
auto=add
keyingtries=3
rekey=no
ikelifetime=8h
keylife=3h
type=transport
left=201.1.2.200 & 重要,服务器本机的外网IP
nbsp; //
leftprotoport=17/1701
right=%any &
nbsp; //允许任何客户端连接
rightprotoport=17/%any
3)创建IPSec预定义共享密钥
[root@vpn ~]# cat /etc/ipsec.secrets //仅查看,不要修改该文件
include /etc/ipsec.d/*.secrets
[root@vpn ~]# vim /etc/ipsec.d/mypass.secrets //新建该文件
201.1.2.200 %any: PSK "randpass" //randpass为密钥
//201.1.2.200是VPN服务器的IP
4)启动IPSec服务
[root@vpn ~]# systemctl start ipsec
[root@vpn ~]# netstat -ntulp |grep pluto
udp 0 0 127.0.0.1:4500 0.0.0.0:* 3148/pluto
udp 0 0 192.168.4.200:4500 0.0.0.0:* 3148/pluto
udp 0 0 201.1.2.200:4500 0.0.0.0:* 3148/pluto
udp 0 0 127.0.0.1:500 0.0.0.0:* 3148/pluto
udp 0 0 192.168.4.200:500 0.0.0.0:* 3148/pluto
udp 0 0 201.1.2.200:500 0.0.0.0:* 3148/pluto
udp6 0 0 ::1:500 :::* 3148/pluto
部署XL2TP服务
1)安装软件包(软件包参考lnmp_soft)
[root@vpn ~]# yum localinstall xl2tpd-1.3.8-2.el7.x86_64.rpm
2) 修改xl2tp配置文件(修改3个配置文件的内容)
[root@vpn ~]# vim /etc/xl2tpd/xl2tpd.conf //修改主配置文件
[global]
.. ..
[lns default]
.. ..
ip range = 192.168.3.128-192.168.3.254 //分配给客户端的IP池
local ip = 201.1.2.200 //VPN服务器的IP地址
[root@vpn ~]# vim /etc/ppp/options.xl2tpd //认证配置
require-mschap-v2
//添加一行,强制要求认证
#crtscts //注释或删除该行
#lock //注释或删除该行
root@vpn ~]# vim /etc/ppp/chap-secrets //修改密码文件
jacob * 123456 * //账户名称 服务器标记 密码 客户端IP
3)启动服务
[root@vpn ~]# systemctl start xl2tpd
[root@vpn ~]# netstat -ntulp |grep xl2tpd
udp 0 0 0.0.0.0:1701 0.0.0.0:* 3580/xl2tpd
4)设置路由转发,防火墙
[root@vpn ~]# echo "1" > /proc/sys/net/ipv4/ip_forward
[root@vpn ~]# firewall-cmd --set-default-zone=trusted
5)FQ设置(非必需操作)
[root@vpn ~]# iptables -t nat -A POSTROUTING -s 192.168.3.0/24 \
> -j SNAT --to-source 201.1.2.200
步骤二:客户端设置
启动一台Windows虚拟机,将虚拟机网卡桥接到public2,配置IP地址为201.1.2.20。
新建网络连接(参考案例2),输入VPN服务器账户与密码(参考案例2)。
设置Windows注册表(不修改注册表,连接VPN默认会报789错误),具体操作如下:
- 单击"开始",单击"运行",键入"regedit",然后单击"确定"
- 找到下面的注册表子项,然后单击它:
- HKEY_LOCAL_MACHINE\ System\CurrentControlSet\Services\Rasman\Parameters
- 在"编辑"菜单上,单击"新建"->"DWORD值"
- 在"名称"框中,键入"ProhibitIpSec"
- 在"数值数据"框中,键入"1",然后单击"确定"
- 退出注册表编辑器,然后重新启动计算机
设置VPN连接的属性,预共享密钥是IPSec配置文件中填写的randpass,具体操作如图-7所示。
图-7
连接VPN并测试网络连通性(参考案例2)。
22、ftp
23. Waf
(1) Cdnfly
https://www.centos.bz/2014/06/new-http-guard-release/
需要干净的系统,可能会覆盖原有的mysql,需要基础yum源
主控端安装
curl -k "https://www.centos.bz/httpguard/master.sh?$(date +%s)" -o master.sh
chmod +x master.sh
./master.sh
被控节点安装
curl -k "https://www.centos.bz/httpguard/agent.sh?$(date +%s)" -o agent.sh
chmod +x agent.sh
./agent.sh 主控端IP
主控端ip为真实ip
主控访问
地址:http://ip:88/
用户和密码:admin guard
(2) Openwaf
https://github.com/titansec/OpenWAF/tree/master/doc
(3)waf
23、mailx
(1)安装邮件发送工具mailx
yum install mailx #安装
(2)设置发送邮件的email,用于邮件发送
cat /etc/mail.rc //内容如下
set from=xxx@sina.cn
set smtp=smtp.sina.com
set smtp-auth-user=xxx@sina.cn
set smtp-auth-password=xxxxxxx
set smtp-auth=login
(3)发送测试邮件
echo "zabbix test ..." |mail -s "zabbix" xxx@qq.com
24、docker
其他系统安装:https://baijiahao.baidu.com/s?id=1592846051245987256&wfr=spider&for=pc
http://www.runoob.com/docker/docker-architecture.html
安装Docker的预备条件:
64位CPU架构的计算机。(暂不支持32位)
Linux3.8以上内核。
内核至少支持其中一种存储驱动:Device Manager(默认); AUFS; vfs; btrfs。
内核必须支持并开启cgroup和namespace功能
- CGroups(Control Groups)-资源管理
– NameSpace-进程隔离
– SELinux安全
(1)内核查看
uname -a
如果版本过低需要升级内核
(2)移除旧版docker
Yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine
(3)安装系统工具
yum install -y yum-utils device-mapper-persistent-data lvm2
(4)添加软件源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum makecache fast #跟新yum缓存
(5)安装和启动docker
yum -y install docker-ce
systemctl start docker
(6)测试
docker ps
docker run hello-world
(7) 命令
docker images 查看镜像
docker search xxx 查找镜像
docker pull xxx 下载镜像
doker help pull 查看pull命令帮助
docker push xxx 上传镜像
docker load < xxx.tar 导入镜像
docker save image_name > xxx.tar #导出镜像
docker run -it centos bash #使用centos镜像生产一个容器
-i
-t
-d
docker ps 查看容器信息
-a 查看所有容器列表
-aq 仅显示容器id
docker history 查看镜像制作历史
docker inspect image_name 查看镜像底层信息
docker rmi image_name 删除本地镜像
docker tag centos:latest test:v1 修改镜像名称和标签
docker stop 关闭容器
docker start 启动容器
dockers restart 重启容器
doker attach |exec 进入容器
attach 进入容器,exit会导致容器关闭
exec 进入容器,退出时丌会关闭容器
docker inspect 查看容器爹那个信息
docker top 进入容器查看进程列表
doker rm 删除容器(先关闭容器,才能删除容器)
25、Mysql
rpm -qa | grep mysql
rpm -e mysql // 普通删除模式
rpm -e --nodeps mysql // 强力删除模式,如果使用上面命令删除时,提示有依赖的其它文件,则用该命令可以对其进行强力删除
主要要清理空目录:/var/log/mysql.log /var/lib/mysql /etc/my.cnf /usr/bin/mysql 等
到官网找相关安装包下载
地址:https://dev.mysql.com/downloads/mysql/
wget https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.15-1.el7.x86_64.rpm-bundle.tar
tar -xf mysql-8.0.15-1.el7.x86_64.rpm-bundle.tar
rmp -ivh mysql-community-*.rpm
ps -ef |grep mysql
systemctl start mysqld
vim /etc/my.cnf
skip-grant-tables #添加跳过密码检查
systemctl start mysqld
mysql —uroot
>alter user “root”@”localhost” identified by “REMYshishabi@123”;
>flush privileges;
>quit
删除skip-grant-tables 字段
systemctl start mysqld #重启服务
常见问题整理:
(1)[ERROR] Can't start server: can't check PID filepath: No such file or directory
错误原因
一般是由于服务器强制关机导致pid文件丢失。
解决办法
在/etc/my.cnf 中查看pid-file的位置
pid-file=/var/run/mysql/mysqld.pid
创建对应的目录并修改权限
mkdir -p /var/run/mysql
chown mysql.mysql /var/run/mysql
这时可以尝试重启mysql了,如果还不行继续第三步
创建一个pid文件并修改权限
touch /var/run/mysql/mysqld.pid
chown mysql.mysql /var/run/mysql/mysqld.pid
再启动MySQL
(2)Plugin 'FEDERATED' is disabled
‘mysql.plugin’不存在的原因是因为新安装的mysql服务后,一般需要执行数据库初始化操作 ,从而生成与权限相关的表,执行命令如下:
/usr/bin/mysql_install_db --user=mysql
如果执行成功刚刚的命令当然是最好的,如果报出了以下错误:
解决方法是:安装autoconf库
yum -y install autoconf
接着执行数据库开启命令,就会成功啦!!!
service mysql start
(3)Error: Failed while fetching Server version! Could be due to unauthorized access.
MySQL更新版本后要需要更新数据库,否则可能出现意外,使用命令:mysql_upgrade -u root -p出现错误提示:
26 、Granfana
yum install https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-5.1.3-1.x86_64.rpm
systemctl start grafana-server
ps -ef | grep grafana #查看进程
ss -tnulp | grep 3000 #查看端口是否正常
grafana-cli plugins list-remote #列出所有插件
grafana-cli plugins update-all #更新所有
grafana-cli plugins install alexanderzobnin-zabbix-app # 安装插件
grafana-cli plugins install alexanderzobnin-zabbix-app #安装插件
grafana-cli plugins install grafana-clock-panel #安装插件
systemctl restart grafana-server #重启服务
ls /var/lib/grafana/plugins #列出插件目录 可查看已安装那些插件
具体配置过程可参照:https://blog.csdn.net/bbwangj/article/details/81109615
26、Java
下载地址:
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
tar zxvf jdk-8u121-linux-x64.tar.gz
yum install glibc.i686
Vim /etc/profile
#Java Env
export JAVA_HOME=/usr/jdk1.8.0_121
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
source /etc/profile
java -version
27、宝塔
1.查看面板入口:/etc/init.d/bt default
2.关闭安全入口:rm -f /www/server/panel/data/admin_path.pl
28、私服
需要java环境
wget http://www.sonatype.org/downloads/nexus-latest-bundle.tar.gz
tar -xf nexus-latest-bundle.tar.gz
cd nexus-2.14.11-01/
环境变量修改#
export RUN_AS_USER=root
export JAVA_HOME=/usr/local/software/jdk1.8.0_66
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.ja
export PATH=.:$JAVA_HOME/bin:$RUN_AS_USER:$PATH
刷新环境变量:source /etc/profile
cd bin/
./nexus start
界面管理
3rd party、Snapshots、Releases这三个,分别用来保存第三方jar、项目组内部的快照、项目组内部的发布版。
3、中央仓库自动更新索引
4、将第三方jar上传到nexus
5、上传之后搜索
这样基本maven私服就搭建完成了,并且上传了自己的jar包。
私服Nexus搭建完毕之后,由于网络原因,有时候会出现索引更新不了的问题,这里给出一种离线更新索引的方式。
https://blog.csdn.net/yuan_xw/article/details/60376651
29、C++
https://blog.csdn.net/yndu_13/article/details/82842408#21_gcc_820_12
30、Jumpserver
https://blog.csdn.net/hurryben/article/details/76985172
31、protobuf
安装包最新地址:https://github.com/protocolbuffers/protobuf/releases
下载好安装包:protobuf-all-3.5.1.tar.gz
#安装依赖包
yum -y install autoconf automake libtool curl make g++ unzip gcc-c++ glibc-headers
#解压
tar -zxvf protobuf-all-3.5.1.tar.gz
#移动到/usr/local下
mv protobuf-all-3.5.1 /usr/lcoal
cd /usr/local/protobuf-all-3.5.1
#编译安装
./configure
make #比较久 半小时左右
make check
make install
#检查是否安装成功
protoc --version
32 zlib
安装包地址:https://zlib.net/
安装包:zlib-1.2.11.tar.gz
#解压移动到安装目录
tar -zxvf zlib-1.2.11.tar.gz
mv zlib-1.2.11 /usr/local
cd /usr/local/ zlib-1.2.11
#编译安装
./configure
make
make check #检查,要全部为yes
make install
33.GDB
gdb是Linux环境下的代码调试工具
1.yum安装一步 yum -y install gdb
2.源码安装
安装地址:http://ftp.gnu.org/gnu/gdb
wget http://ftp.gnu.org/gnu/gdb/gdb-8.0.1.tar.gz
tar -zxvf gdb-8.0.1.tar.gz
cd gdb-8.0.1
./configure
make
make install
gdb -v
34:vnc