您的位置:首页 > 运维架构 > Linux

在Ubuntu下搭建微服务开发环境

2017-11-15 22:29 1581 查看

关于本文

写作目标:作为在linux下安装JDK、MySQL、Zookeeper、Redis、MongoDB、RabbitMQ等开发组件的快速参考指南

Linux版本:Linux Mint 18.2 Sonya(基于Ubuntu 16.04 Xenial)

实战记录

JAVA OpenJDK 1

sudo apt install openjdk-8-jdk


MySQL 2 3

安装

wget https://dev.mysql.com/get/mysql-apt-config_0.8.6-1_all.deb dpkg -i mysql-apt-config_0.8.6-1_all.deb
apt update
apt install mysql-server


配置

vi /etc/mysql/conf.d/mysql.cnf
[mysql]
default-character-set=utf8

vi /etc/mysql/mysql.conf.d/mysqld.cnf
[mysqld]
# 注释如下配置以允许远程访问
# bind-address  = 127.0.0.1
character-set-server=utf8
default-time-zone='+8:00'

# 重启服务
sudo service mysql restart


常用命令

# 登录
mysql -uroot -p

# 创建用户、数据库
create user 'test'@'%' identified by '123456';
create database test;
grant all on test.* to 'test'@'%';
flush privileges;

# 重置root密码
sudo service mysql stop
sudo mkdir -p /var/run/mysqld
sudo chown mysql:adm /var/run/mysqld
sudo nohup mysqld_safe --skip-grant-tables --skip-networking &
#进入mysql shell后用下面修改密码的方式更改root密码
mysql
set password for 'root'@'localhost'=password('123456');
#重启服务
mysqladmin shutdown
sudo service mysql start

# 修改密码
#方式一 (https://dev.mysql.com/doc/refman/5.7/en/password-hashing.html)
set password for 'root'@'localhost'=password('123456');
#方式二
update mysql.user set authentication_string=password('123456') where user='root' and host = 'localhost';

# 修改数据库字符集
alter database test character set utf8;

# 查看mysql字符集默认配置
show variables like '%character%';

# 复制数据库:将数据库db1复制到数据库db2 (https://dev.mysql.com/doc/refman/5.7/en/mysqldump-copying-database.html)
mysqldump -uroot -p db1 > dump.sql
mysqladmin -uroot -p create db2
mysql -uroot -p db2 < dump.sql


Zookeeper (启动前必须先安装好JDK)

从Ubuntu软件仓库安装 4

sudo apt install zookeeperd


从zookeeper官网下载(推荐此方式,可使用最新稳定版) 5

#切换到root用户
su -
cd /usr/local/share
wget http://mirrors.aliyun.com/apache/zookeeper/zookeeper-3.4.10/zookeeper-3.4.10.tar.gz tar xzf zookeeper-3.4.10.tar.gz
cd zookeeper-3.4.10
mv zookeeper-3.4.10 zookeeper
cp conf/zoo_sample.cfg conf/zoo.cfg
vi conf/zoo.cfg # 修改 dataDir=/var/lib/zookeeper

# 启动服务
bin/zkServer.sh start

# 安装为系统自启服务 (https://issues.apache.org/jira/browse/ZOOKEEPER-2095)
vi /lib/systemd/system/zookeeper.service
---------------------------------------------------------
[Unit]
Description=Apache Zookeeper
After=network.target

[Service]
Type=forking
SyslogIdentifier=zookeeper
Restart=always
RestartSec=0s
ExecStart=/usr/local/share/zookeeper/bin/zkServer.sh start
ExecStop=/usr/local/share/zookeeper/bin/zkServer.sh stop
ExecReload=/usr/local/share/zookeeper/bin/zkServer.sh restart

[Install]
WantedBy=multi-user.target
---------------------------------------------------------

systemctl start zookeeper
systemctl enable zookeeper


Redis

从Ubuntu软件仓库安装 6

sudo apt install redis-server


从redis官网下载(推荐此方式,可使用最新稳定版) 7

#切换到root用户
su -
cd /usr/local/share
wget http://download.redis.io/releases/redis-3.2.9.tar.gz tar xzf redis-3.2.9.tar.gz
cd redis-3.2.9
make

# 启动服务
nohup src/redis-server redis.conf > redis-server.out &

# 或者安装为系统自启服务 (设置 redis executable path 时指定 src/redis-server 所在的完整路径)
utils/install_server.sh
/etc/init.d/redis_6379 start
update-rc.d redis_6379 defaults


配置 8

# 使用场景举例:允许内网环境中其他机器访问时,假设redis安装机器IP为172.18.1.10,可按如下配置
vi redis.conf
bind 127.0.0.1 172.18.1.10
# 使用redis-cli进行访问验证 (redis-cli与redis-server在同一个目录)
redis-cli -h 172.18.1.10 -p 6379

# 使用场景举例:开启远程访问 (注释掉bind配置项,修改requirepass、masterauth配置项)
# 务必设置非常复杂、长度很大的密码
vi redis.conf
#bind 127.0.0.1
# 在master实例修改requirepass配置项
requirepass Fmg1$7!&bcNp@iY0tW6pEVPP!FZ9vHMd5a%TOJAGI8bO7qqT1%
# 在slave实例修改masterauth配置项
masterauth Fmg1$7!&bcNp@iY0tW6pEVPP!FZ9vHMd5a%TOJAGI8bO7qqT1%

# 验证授权
# ./redis-cli -a 'Fmg1$7!&bcNp@iY0tW6pEVPP!FZ9vHMd5a%TOJAGI8bO7qqT1%'

# 如果启用密码访问,须要修改/etc/init.d/redis_6379
$CLIEXEC -p $REDISPORT -a 'Fmg1$7!&bcNp@iY0tW6pEVPP!FZ9vHMd5a%TOJAGI8bO7qqT1%' shutdown

# 修改完配置后注意重启服务
/etc/init.d/redis_6379 restart


MongoDB 9

安装

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927
# 使用阿里云镜像站,加快下载速度
sudo echo "deb http://mirrors.aliyun.com/mongodb/apt/ubuntu xenial/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list
sudo apt-get update
sudo apt-get install -y mongodb-org


配置 10 11 12 13

默认配置文件路径是/etc/mongod.conf

如果想为mongos或mongod绑定多个监听的IP地址,可将net.bindIp设置为英文逗号分割的多个IP地址

# 使用场景举例:允许内网环境中其他机器访问时,假设mongod安装机器IP为172.18.1.10,可按如下配置
vi /etc/mongod.conf
net:
bindIp: 127.0.0.1,172.18.1.10

# 使用场景举例:开启远程访问 (注释net.bindIp配置项,添加security.authorization配置项;创建授权用户)
vi /etc/mongod.conf
net:
# bindIp: 127.0.0.1
security:
authorization: enabled

mongo
use admin
db.createUser(
{
user: "root",
pwd: "123456",
roles: [ { role: "root", db: "admin" } ]
}
)
use test
db.createUser(
{
user: "test",
pwd: "123456",
roles: [ { role: "dbOwner", db: "test" } ]
}
)

# 重启服务以使配置生效
sudo service mongod restart

# 开启授权后的登录举例,特别注意authenticationDatabase参数的使用,它与用户所授权角色对应的数据库有关,root角色拥有所有库的所有操作权限,dbOwner角色只有授权库的所有操作权限
mongo localhost:27017/test -u "root" -p "123456" --authenticationDatabase "admin"
mongo localhost:27017/test -u "test" -p "123456" --authenticationDatabase "test"


RabbitMQ 14

使用PackageCloud APT Repository进行安装 15

curl -s https://packagecloud.io/install/repositories/rabbitmq/rabbitmq-server/script.deb.sh | sudo bash

sudo apt-get install rabbitmq-server


使用RabbitMQ APT Repository进行安装 16

echo 'deb http://www.rabbitmq.com/debian/ testing main' | sudo tee /etc/apt/sources.list.d/rabbitmq.list

wget -O- https://www.rabbitmq.com/rabbitmq-release-signing-key.asc | sudo apt-key add -
或者
wget -O- https://dl.bintray.com/rabbitmq/Keys/rabbitmq-release-signing-key.asc | sudo apt-key add -

sudo apt-get update
sudo apt-get install rabbitmq-server


配置 17 18 19 20

配置所在路径:在/var/log/rabbitmq/rabbit@{计算机名}.log查看;

默认情况rabbitmq.config、rabbitmq-env.conf在目录/etc/rabbitmq/中,如果文件不存在可自行创建,

rabbitmq.config配置示例:/usr/share/doc/rabbitmq-server/rabbitmq.config.example.gz或者访问rabbitmq.config.example

也可通过设置系统环境变量RABBITMQ_CONFIG_FILE、RABBITMQ_CONF_ENV_FILE指定具体路径;

修改完成后须要重启rabbimq-server服务;

默认配置如下,注意RABBITMQ_CONFIG_FILE配置路径不用添加.config后缀,Erlang运行时会自动追加:

RABBITMQ_CONFIG_FILE=/etc/rabbitmq/rabbitmq
RABBITMQ_CONF_ENV_FILE=/etc/rabbitmq/rabbitmq-env.conf


默认账号: 用户名密码都是guest

默认只能通过loopback地址(例如localhost)连接guest账号,如果想允许远程访问,须要修改rabbitmq.config(将loopback_users配置项设为[]):
[{rabbit, [{loopback_users, []}]}].


使用Management Plugin,执行
sudo rabbitmq-plugins enable rabbitmq_management
启用成功后可访问Web UI进行管理

其他常用指令

# 创建新用户,增加权限
sudo rabbitmqctl add_user test 123456
sudo rabbitmqctl set_permissions -p / test ".*" ".*" ".*"
sudo rabbitmqctl set_user_tags test administrator
# 验证账号
sudo rabbitmqctl authenticate_user test 123456

# 修改密码
sudo rabbitmqctl change_password test 123456


http://openjdk.java.net/install/index.html
https://dev.mysql.com/doc/mysql-apt-repo-quick-guide/en/
https://dev.mysql.com/downloads/repo/apt/
https://launchpad.net/ubuntu/xenial/+package/zookeeper
http://zookeeper.apache.org/doc/r3.4.10/zookeeperStarted.html
https://launchpad.net/ubuntu/xenial/+package/redis-server
https://redis.io/download
https://redis.io/commands/auth
https://docs.mongodb.com/v3.2/tutorial/install-mongodb-on-ubuntu/
https://docs.mongodb.com/v3.2/reference/configuration-options/
https://docs.mongodb.com/v3.2/tutorial/enable-authentication/
https://docs.mongodb.com/v3.2/core/authorization/
https://docs.mongodb.com/v3.2/core/security-built-in-roles/
http://www.rabbitmq.com/download.html
https://packagecloud.io/rabbitmq/rabbitmq-server/install#bash-deb
http://www.rabbitmq.com/install-debian.html
http://www.rabbitmq.com/configure.html
http://www.rabbitmq.com/relocate.html
http://www.rabbitmq.com/access-control.html
http://www.rabbitmq.com/man/rabbitmqctl.1.man.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ubuntu linux 开发环境