常用服务安装部署

学了前面的Linux基础,想必童鞋们是不是更感兴趣了?接下来就学习常用服务部署吧!

安装环境:

centos7 + vmware + xshell

即将登场的是:

  • mysql(mariadb)
  • redis
  • python
  • nginx
  • saltstack

MYSQL(mariadb)

MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可。开发这个分支的原因之一是:甲骨文公司收购了MySQL后,有将MySQL闭源的潜在风险,因此社区采用分支的方式来避开这个风险。MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。

方法1:yum安装mariadb

yum install mariadb-server mariadb 

相关命令

mariadb数据库的相关命令是:

systemctl start mariadb  #启动MariaDB

systemctl stop mariadb  #停止MariaDB

systemctl restart mariadb  #重启MariaDB

systemctl enable mariadb  #设置开机启动

启动后正常使用mysql

systemctl start mariadb

#进入mysql
mysql -uroot -p

方法2:官网下载mysql-server包(rpm)

# wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
# rpm -ivh mysql-community-release-el7-5.noarch.rpm
# yum install mysql-community-server

配置mysql

1.中文编码设置

编辑mysql配置文件/etc/my.cnf
[mysqld]
character-set-server=utf8
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
collation-server=utf8_general_ci

security risks
symbolic-links=0
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

[client]
default-character-set=utf8
[mysql]
default-character-set=utf8

2.授权配置

远程连接设置哦设置所有库,所有表的所有权限,赋值权限给所有ip地址的root用户mysql > grant all privileges on *.* to [email protected]‘%‘ identified by ‘password‘;#创建用户mysql > create user ‘username‘@‘%‘ identified by ‘password‘;#刷新权限flush privileges;

MYSQL主从复制

主从机制实现原理

(1) master将改变记录到二进制日志(binary log)中(这些记录叫做二进制日志事件,binary log events);
(2) slave将master的binary log events拷贝到它的中继日志(relay log);
(3) slave重做中继日志中的事件,将改变反映它自己的数据。

master主库配置

#查看数据库状态
systemctl status mariadb
#停mariadb
systemctl stop mariadb

#修改配置文件vim /etc/my.cnf#修改内容#解释:server-id服务的唯一标识(主从之间都必须不同);log-bin启动二进制日志名称为mysql-bin 

  [mysqld]
  server-id=1
  log-bin=mysql-bin

#重启mariadbsystemctl start mariadb

master主库添加从库账号

1.新建用于主从同步的用户chaoge,允许登录的从库是‘192.168.178.130‘
create user ‘chaoge‘@‘192.168.178.130‘ identified by ‘redhat‘;

2.#题外话:如果提示密码太简单不复合策略加在前面加这句
mysql> set global validate_password_policy=0;

3.给从库账号授权,说明给chaoge从库复制的权限,在192.168.178.130机器上复制grant replication slave on *.* to ‘chaoge‘@‘192.168.178.130‘;

4.检查主库的状态

MariaDB [(none)]> show master status
-> ;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000001 | 575 | | |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)

File是二进制日志文件名,Position 是日志开始的位置。后面从库会用到 后面从库会用到 后面从库会用到!!!!!!

slave从库配置

1.检查slave数据库状态
systemctl status mariadb

2.停止mariadb
systemctl stop mariadb

3.修改配置文件my.cnf[mysqld] server-id=2  #一定要和主库区别开

4.重启mariadbsystemctl start mariadb

5.登录mariadbmysql -uroot -p

6.使用主库授权的账号

mysql > change master to master_host=‘192.168.178.129‘,
master_user=‘chaoge‘,
master_password=‘redhat‘,
master_log_file=‘mysql-bin.000001‘,
master_log_pos=575;

 7.重启数据库

systemctl restart mariadb

redis

Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件

yum安装redis

1.yum安装

#前提得配置好阿里云yum源,epel源
#查看是否有redis包
yum list redis#安装redisyum install redis -y#安装好,启动redissystemctl start redis

2.检测redis是否工作

redis-cli    #redis 客户端工具
#进入交互式环境后,执行ping,返回pong表示安装成功
127.0.0.1:6379> ping
PONG

源码安装redis,编译安装

大家用过yum,是相当省事好用吧,为什么还要学习源码安装?

有人说编译安装性能好?错

编译安装的优势是:

  • 编译安装时可以指定扩展的module(模块),php、apache、nginx都是一样有很多第三方扩展模块,如mysql,编译安装时候,如果需要就定制存储引擎(innodb,还是MyIASM)
  • 编译安装可以统一安装路径,linux软件约定安装目录在/opt/下面
  • 软件仓库版本一般比较低,编译源码安装可以根据需求,安装最新的版本

1.下载redis源码
wget http://download.redis.io/releases/redis-4.0.10.tar.gz2.解压缩tar -zxf redis-4.0.10.tar.gz3.切换redis源码目录cd redis-4.0.10.tar.gz4.编译源文件make 5.编译好后,src/目录下有编译好的redis指令6.make install 安装到指定目录,默认在/usr/local/bin

redis可执行文件

./redis-benchmark //用于进行redis性能测试的工具
./redis-check-dump //用于修复出问题的dump.rdb文件
./redis-cli //redis的客户端
./redis-server //redis的服务端
./redis-check-aof //用于修复出问题的AOF文件
./redis-sentinel //用于集群管理

启动redis服务端

启动redis非常简单,直接./redis-server就可以启动服务端了,还可以用下面的方法指定要加载的配置文件:
./redis-server ../redis.conf默认情况下,redis-server会以非daemon的方式来运行,且默认服务端口为6379。

使用redis客户端

#执行客户端命令即可进入
./redis-cli
#测试是否连接上redis
127.0.0.1:6379 > ping
返回pong代表连接上了

//用set来设置key、value
127.0.0.1:6379 > set name "chaoge"
OK
//get获取name的值
127.0.0.1:6379 > get name
"chaoge"

redis数据结构

redis是一种高级的key:value存储系统,其中value支持五种数据类型
字符串(strings)
散列(hashes)
列表(lists)
集合(sets)
有序集合(sorted sets)

数据结构示例

1.strings类型

set name "chaoge66" //设置name
get name    //读取name

strings类型支持数值操作
set age "17" //设置key age
get age        //读取age
incr age      //数值+1,遇见数值操作时,redis会将字符串类型转成数值
get age        //此时age是18,value仍然是字符串type age    //查看键的类型

2.list类型

redis的另外一个数据结构叫做lists,中文叫列表
lists常用操作包括
LPUSH   在lists左侧插入一个新元素
RPUSH   在lists右侧插入一个新元素
LRANGE  在lists指定范围提取元素LPOP    左侧删除RPOP  右侧删除

示例:

lpush mylist "1" //新建一个mylist,在头部插入元素"1"
(integer) 1    //返回mylist元素个数

rpush mylist "2"  //在mylist右侧插入元素"2"

(INTEGER) 2    //返回mylist元素个数

127.0.0.1:6379> lpush mylist "0"  //在mylist左侧插入元素"0"

(integer) 3    //返回mylist元素个数

//列出mylist中从编号0到编号1的元素

127.0.0.1:6379> lrange mylist 0 -1 
1) "0"
2) "1"
3) "2"

lists类型常用在,消息队列、实现分页功能、存储文章评论

3.sets集合类型

redis的集合,是一种无序的集合,集合中的元素没有先后顺序。

集合相关的操作也很丰富,如添加新元素、删除已有元素、取交集、取并集、取差集等。我们来看例子:

//向集合myset中加入一个新元素"one"
127.0.0.1:6379> sadd myset "one"
(integer) 1
127.0.0.1:6379> sadd myset "two"
(integer) 1
//列出集合myset中的所有元素
127.0.0.1:6379> smembers myset
1) "one"
2) "two"
//判断元素1是否在集合myset中,返回1表示存在
127.0.0.1:6379> sismember myset "one"
(integer) 1
//判断元素3是否在集合myset中,返回0表示不存在
127.0.0.1:6379> sismember myset "three"
(integer) 0
//新建一个新的集合yourset
127.0.0.1:6379> sadd yourset "1"
(integer) 1
127.0.0.1:6379> sadd yourset "2"
(integer) 1
127.0.0.1:6379> smembers yourset
1) "1"
2) "2"
//对两个集合求并集
127.0.0.1:6379> sunion myset yourset
1) "1"
2) "one"
3) "2"
4) "two"

集合的使用比如QQ社交功能中的“好友标签”,朋友给你的好友标签“sb”,“dsb”等等,就可以吧每一个用户的标签存储在集合里

4.sorted sets有序集合

redis不但提供了无需集合(sets),还很体贴的提供了有序集合(sorted sets)。有序集合中的每个元素都关联一个序号(score),这便是排序的依据。

很多时候,我们都将redis中的有序集合叫做zsets,这是因为在redis中,有序集合相关的操作指令都是以z开头的,比如zrange、zadd、zrevrange、zrangebyscore等等

127.0.0.1:6379> zadd myzset 1 baidu.com
(integer) 1
//向myzset中新增一个元素360.com,赋予它的序号是3
127.0.0.1:6379> zadd myzset 3 360.com
(integer) 1
//向myzset中新增一个元素google.com,赋予它的序号是2
127.0.0.1:6379> zadd myzset 2 google.com
(integer) 1
//列出myzset的所有元素,同时列出其序号,可以看出myzset已经是有序的了。
127.0.0.1:6379> zrange myzset 0 -1 with scores
1) "baidu.com"
2) "1"
3) "google.com"
4) "2"
5) "360.com"
6) "3"
//只列出myzset的元素
127.0.0.1:6379> zrange myzset 0 -1
1) "baidu.com"
2) "google.com"
3) "360.com"

5.哈希数据结构

hashes即哈希。哈希是从redis-2.0.0版本之后才有的数据结构。

hashes存的是字符串和字符串值之间的映射,比如一个用户要存储其全名、姓氏、年龄等等,就很适合使用哈希。

//建立哈希,并赋值
127.0.0.1:6379> HMSET user:001 username antirez password P1pp0 age 34
OK
//列出哈希的内容
127.0.0.1:6379> HGETALL user:001
1) "username"
2) "antirez"
3) "password"
4) "P1pp0"
5) "age"
6) "34"
//更改哈希中的某一个值
127.0.0.1:6379> HSET user:001 password 12345
(integer) 0
//再次列出哈希的内容
127.0.0.1:6379> HGETALL user:001
1) "username"
2) "antirez"
3) "password"
4) "12345"
5) "age"
6) "34"

Python编译安装

先放个龟叔再说

centos7默认是装有python的,咱们先看一下

#检查python版本
[[email protected]_python ~ 17:23:54]#python -V
Python 2.7.5

再放一张图,《震惊,python2.7不再维护!》

好了,咱们开始python3之旅。

编译环境准备

1、./configure 是用来检测你的安装平台的目标特征的。比如它会检测你是不是有CC或GCC,并不是需要CC或GCC,它是个shell脚本。
2、make 是用来编译的,它从Makefile中读取指令,然后编译。
3、make install是用来安装的,它也从Makefile中读取指令,安装到指定的位置。4.解决依赖关系yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel -y

这里看超哥另外一篇文章:https://www.cnblogs.com/pyyu/p/7402145.html

1.下载python3版本
curl -O https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tgz2.解压缩源码tar -zxvf Python-3.7.0.tgz 3.编译三部曲./configure –prefix=/opt/python3.7/  #指定编译装到/opt/python3.7/下make && make install  #编译和安装

NGINX

nginx [engine x]是Igor Sysoev编写的一个HTTP和反向代理服务器,另外它也可以作为邮件代理服务器。 它已经在众多流量很大的俄罗斯网站上使用了很长时间,这些网站包括Yandex、Mail.Ru、VKontakte,以及Rambler。据Netcraft统计,在2012年8月份,世界上最繁忙的网站中有11.48%使用Nginx作为其服务器或者代理服务器。

Tengine是由淘宝网发起的Web服务器项目。它在Nginx的基础上,针对大访问量网站的需求,添加了很多高级功能和特性。Tengine的性能和稳定性已经在大型的网站如淘宝网,天猫商城等得到了很好的检验。它的最终目标是打造一个高效、稳定、安全、易用的Web平台。

从2011年12月开始,Tengine成为一个开源项目,Tengine团队在积极地开发和维护着它。Tengine团队的核心成员来自于淘宝、搜狗等互联网企业。Tengine是社区合作的成果,我们欢迎大家参与其中,贡献自己的力量。

安装环境准备

一. gcc 安装
安装 nginx 需要先将官网下载的源码进行编译,编译依赖 gcc 环境,如果没有 gcc 环境,则需要安装:

yum install gcc-c++
二. PCRE pcre-devel 安装
PCRE(Perl Compatible Regular Expressions) 是一个Perl库,包括 perl 兼容的正则表达式库。nginx 的 http 模块使用 pcre 来解析正则表达式,所以需要在 linux 上安装 pcre 库,pcre-devel 是使用 pcre 开发的一个二次开发库。nginx也需要此库。命令:

yum install -y pcre pcre-devel
三. zlib 安装
zlib 库提供了很多种压缩和解压缩的方式, nginx 使用 zlib 对 http 包的内容进行 gzip ,所以需要在 Centos 上安装 zlib 库。

yum install -y zlib zlib-devel
四. OpenSSL 安装
OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及 SSL 协议,并提供丰富的应用程序供测试或其它目的使用。
nginx 不仅支持 http 协议,还支持 https(即在ssl协议上传输http),所以需要在 Centos 安装 OpenSSL 库。

yum install -y openssl openssl-devel

安装,启动nginx

1.下载源码包
wget -c https://nginx.org/download/nginx-1.12.0.tar.gz2.解压缩源码tar -zxvf nginx-1.12.0.tar.gz3.配置,编译安装.configure --prefix=/opt/nginx1-12/make && make install 4.启动nginx,进入sbin目录,找到nginx启动命令cd sbin./nginx #启动./nginx -s stop #关闭./nginx -s reload #重新加载

uWSGI+NGINX+Django部署应用 

经过上续的nginx,python安装,还得提前安装好virtualenv(超哥博客)

安装uWSGI

后续都得在虚拟环境下配置,
(venv)pip3 install uwsgi 安装uwsgi
安装好后,编写一个test.py
def application(env,start_response):
    start_response(‘200 OK‘,[(‘Content-Type‘,‘text/html‘)])
    return [b‘Hello world!‘]

开启uWSGI服务

uwsgi --http :8000 --wsgi-file test.py 

saltstack

对于运维人员来说,反复复杂的工作很烦,效率低,还容易出错。而传统运维也想着自动化运维的方向进行发展,

而saltstack则是在自动化运维上非常好用的工具,saltstack是python开发的一款自动化运维工具,可以批量管理操作主机,

远程执行脚本等功能。完全开源,还可以设置web管理界面,更简单的管理大量服务器。

基本原理:

基本原理SaltStack 采用 C/S模式,server端就是salt的master,client端就是minion,minion与master之间通过ZeroMQ消息队列通信

minion上线后先与master端联系,把自己的pub key发过去,这时master端通过salt-key -L命令就会看到minion的key,接受该minion-key后,也就是master与minion已经互信

安装准备:

1.安装epel源(同时在master,minion端)
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

2.安装salt-master,也就是服务端yum install salt-master -y

3.安装salt-minion,也就是客户端yum install salt-minion -y

原文地址:https://www.cnblogs.com/zsdbk/p/9387542.html

时间: 2024-10-07 16:58:02

常用服务安装部署的相关文章

Zabbix服务安装部署及监控配置

1.1 Zabbix服务介绍 官方网站:http://www.zabbix.com/ The Enterprise-class Monitoring Solution for Everyone 企业级监控解决方案 zabbix是一个基于Web界面提供分布式系统监控以及网络监视功能的企业级的开源解决方案 Zabbix能监视各种网络参数,保证服务器系统的安全运营:并提供灵活的通知机制以及让系统管理员快速定位解决存在的各种问题. 1.1 Zabbix主要特点 安装与配置简单,学习成本地,支持多语言(包

服务安装部署工具

自动化运维工具Ansible详细部署 ========================================================================================== 一.基础介绍 ========================================================================================== 1.简介 ansible是新出现的自动化运维工具,基于Python开发,集合了众多运

openstack-mitaka之块存储服务安装部署(controller)

1.以root用户登陆mysql,创建cinder数据库,并授权相应的权限 2.创建服务证书 1)创建cinder用户 2)将cinder用户添加到admin角色组 3)创建服务实体 3.创建块存储服务API端点 4.安装相关软件包 5.配置相关文件,编辑/etc/cinder/cinder.conf 1)[database]设置数据库连接 2)[DEFAULT]设置rabbitMQ消息队列.设置认证服务.设置my_ip 3)[oslo_messaging_rabbit]设置消息队列 4)[ke

nfs服务安装部署测试

nfs:网络文件系统作用:某个文件或目录共享,使其它用户可以通过网络访问此共享目录或文件.***特别注意共享的目录权限1.使用nfs需要先安装 yum install -y nfs-utils rpcbind(通信)权限选项:ro:表示只读 rw:表示读/写sync:同步模式,表示内存中的数据时时写入磁盘async:非同步模式,表示把内存中的数据定期写入磁盘no_root_squash:加上这个选项后,root用户就会对共享的目录拥有至高的权限控制,就像对本机的目录操作一样,不安全,不建议使用r

06.Linux系统-GitLab版本控制服务安装部署

官方文档:https://about.gitlab.com/install/#centos-7 1.yum install -y curl policycoreutils-python openssh-server2.systemctl start sshd3.yum install postfix4.systemctl start postfix 注:报错就改/etc/postfix/main.cf-->inet_interfaces = all 5.curl https://packages

通过跳板机建立信任,对多个tomcat服务统一安装部署(shell编写)

=========================================================== conf : 录入服务器IP.安装路径后,脚本自动获取需要修改配置.每个服务提供一个配置文件,方便管理与扩展. bin : 提供总执行与单一执行脚本,脚本通过自动化获取配置,便于维护与扩展. bak : 保留获取原配置文件,便于问题分析. temp : 临时文件将及时删除无任何冗积. tools: 常用配置与通用文件处理写入统一函数,具体服务只需调用. new : 服务器交互文

Linux:多Tomcat服务, 统一安装部署 unifyDeploy0.2版本发布

下载地址:  unifyDeploy0.1版本  unifyDeploy0.2版本 1       引言 基于JAVA开发项目,随着服务的越来越多,配置文件更是眼花缭乱,每次不知道因为配置问题浪费多少时间,更不知道因为配置问题出过多少问题.多台服务器来回切换,如果服务需要依赖,启动更是问题. 1.1 目的 一次修改,统一安装:操作简单,实用高效. 1.2 范围 本项目使用范围包括: 基于JAVA开发项目 项目相关服务繁多 服务启动有依赖关系 1.3 读者 本需求规格说明书的阅读者或其他文档干系人

Linux常用服务部署与优化

Linux常用服务部署与优化 A.NFS部署和优化1 1. 安装NFS服务端与配置文件 [[email protected] mnt]# yum install -y nfs-utils rpcbind     //安装服务端 [[email protected] mnt]# vim /etc/exports    //打开配置文件,配置共享文件,文件默认是空的 /mnt  10.30.4.137(rw,sync)    //配置共享文件/mnt [[email protected] mnt]#

lamp/lnmp阶段练习Linux常用服务部署与优化

lamp/lnmp阶段练习Linux常用服务部署与优化 我们以模拟实际需求的形式来复习.需求如下: 1. 准备两台centos 6,其中一台机器跑mysql,另外一台机器跑apache和nginx + php 2. 同时安装apache和nginx,其中nginx启动80端口,用来跑静态对象(图片.js.css),apache监听88端口,负责跑动态页(php相关的),并且需要由nginx代理对外访问3. mysql服务器需要开启慢查询日志4. 搭建discuz.wordpress以及phpmy