centos ips centos7.0下载

大家好,今天给各位分享centos ips的一些知识,其中也会对centos7.0下载进行解释,文章篇幅可能偏长,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在就马上开始吧!

mysql pxc程序要做哪些修改

PXC简介

Percona XtraDB Cluster(简称PXC集群)提供了MySQL高可用的一种实现方法。

1.集群是有节点组成的,推荐配置至少3个节点,但是也可以运行在2个节点上。

2.每个节点都是普通的mysql/percona服务器,可以将现有的数据库服务器组成集群,反之,也可以将集群拆分成单独的服务器。

3.每个节点都包含完整的数据副本。

PXC集群主要由两部分组成:Percona Server with XtraDB和Write Set Replication patches(使用了Galera library,一个通用的用于事务型应用的同步、多主复制插件)。

PXC特性:

1,同步复制,事务要么在所有节点提交或不提交。

2,多主复制,可以在任意节点进行写操作。

3,在从服务器上并行应用事件,真正意义上的并行复制。

4,节点自动配置,数据一致性,不再是异步复制。

PXC劣势:

1、当前版本(5.6.20)的复制只支持InnoDB引擎,其他存储引擎的更改不复制。然而,DDL(Data Definition Language)语句在statement级别被复制,并且,对mysql.*表的更改会基于此被复制。例如CREATE USER...语句会被复制,但是 INSERT INTO mysql.user...语句则不会。(也可以通过wsrep_replicate_myisam参数开启myisam引擎的复制,但这是一个实验性的参数)。

2、PXC集群一致性控制机制,事有可能被终止,原因如下:集群允许在两个节点上同时执行操作同一行的两个事务,但是只有一个能执行成功,另一个会被终止,集群会给被终止的客户端返回死锁错误(Error: 1213 SQLSTATE: 40001(ER_LOCK_DEADLOCK)).

3、写入效率取决于节点中最弱的一台,因为PXC集群采用的是强一致性原则,一个更改操作在所有节点都成功才算执行成功。

原理描述

分布式系统的CAP理论:

C一致性,所有的节点数据一致

A可用性,一个或者多个节点失效,不影响服务请求P分区容忍性,节点间的连接失效,仍然可以处理请求任何一个分布式系统,需要满足这三个中的两个安装部署

环境描述

三个node节点

node#1

hostname: percona1

IP: 192.168.100.7

node#2

hostname: percona2

IP: 192.168.100.8

node#3

hostname: percona3

IP: 192.168.100.9

基础环境包

可以选择源码或者yum,在此使用yum安装。

三个node节点都要执行以下操作。

基础环境

yum-y groupinstall Base Compatibility libraries Debugging Tools Dial-up Networking suppport Hardware monitoring utilities Performance Tools Development tools组件安装

yum install install Percona-XtraDB-Cluster-55-y

数据库配置

选择一个node作为名义上的master,咱们以node1为master,以下操作只在node1上执行。

只需要修改mysql的配置文件--/etc/my.cnf

说明:这里的IP地址是内网地址。

[root@i-kysyolko~]# cat/etc/my.cnf

# Template my.cnf for PXC

# Edit to your requirements.

[mysqld]

datadir=/var/lib/mysql

user=mysql

# Path to Galera library

wsrep_provider=/usr/lib64/libgalera_smm.so# Cluster connection URL contains the IPs of node#1, node#2 and node#3wsrep_cluster_address=gcomm://192.168.100.7,192.168.100.8,192.168.100.9# In order for Galera to work correctly binlog format should be ROWbinlog_format=ROW

# MyISAM storage engine has only experimental supportdefault_storage_engine=InnoDB

# This changes how InnoDB autoincrement locks are managed and is a requirement for Galerainnodb_autoinc_lock_mode=2

# Node#1 address

wsrep_node_address=192.168.100.7

# SST method

wsrep_sst_method=xtrabackup-v2

# Cluster name

wsrep_cluster_name=my_centos_cluster

# Authentication for SST method

wsrep_sst_auth="sstuser:s3cret"

[mysqld_safe]

pid-file=/run/mysqld/mysql.pid

syslog

!includedir/etc/my.cnf.d

启动数据库

CentOS6:/etc/init.d/mysql bootstrap-pxc

CentOS7:systemctl start mysql@bootstrap.service配置数据库

mysql> show status like'wsrep%';

+----------------------------+--------------------------------------+| Variable_name| Value|

+----------------------------+--------------------------------------+| wsrep_local_state_uuid| c2883338-834d-11e2-0800-03c9c68e41ec|...

| wsrep_local_state| 4|

| wsrep_local_state_comment| Synced|

...

| wsrep_cluster_size| 1#主要看这里|

| wsrep_cluster_status| Primary|

| wsrep_connected| ON|

...

| wsrep_ready| ON|

+----------------------------+--------------------------------------+40 rows in set(0.01 sec)

#数据库用户名密码的设置

mysql@percona1> UPDATE mysql.user SET password=PASSWORD("Passw0rd") where user='root';#创建、授权、同步账号

mysql@percona1> CREATE USER'sstuser'@'localhost' IDENTIFIED BY's3cret';mysql@percona1> GRANT RELOAD, LOCK TABLES, REPLICATION CLIENT ON*.* TO'sstuser'@'localhost';mysql@percona1> FLUSH PRIVILEGES;

node2、node3节点配置

接下来进行其它节点的配置,上面的组件都已经安装完成。现在直接进行数据库的配置。

只需要修改第26行,当前node的IP地址。两个node都是只是修改这个地址即可。

wsrep_node_address=192.168.100.8

[root@i-kysyolko~]# cat/etc/my.cnf

# Template my.cnf for PXC

# Edit to your requirements.

[mysqld]

datadir=/var/lib/mysql

user=mysql

# Path to Galera library

wsrep_provider=/usr/lib64/libgalera_smm.so# Cluster connection URL contains the IPs of node#1, node#2 and node#3wsrep_cluster_address=gcomm://192.168.100.7,192.168.100.8,192.168.100.9# In order for Galera to work correctly binlog format should be ROWbinlog_format=ROW

# MyISAM storage engine has only experimental supportdefault_storage_engine=InnoDB

# This changes how InnoDB autoincrement locks are managed and is a requirement for Galerainnodb_autoinc_lock_mode=2

# Node#1 address

wsrep_node_address=192.168.100.8

# SST method

wsrep_sst_method=xtrabackup-v2

# Cluster name

wsrep_cluster_name=my_centos_cluster

# Authentication for SST method

wsrep_sst_auth="sstuser:s3cret"

[mysqld_safe]

pid-file=/run/mysqld/mysql.pid

syslog

!includedir/etc/my.cnf.d

启动数据库

CentOS6:/etc/init.d/mysql start

CentOS7:systemctl start mysql.service

说明:

1、除了名义上的master之外,其它的node节点只需要启动mysql即可。

2、节点的数据库的登陆和master节点的用户名密码一致,自动同步。所以其它的节点数据库用户名密码无须重新设置。

测试

在任意一个node上,进行操作,然后去其它的节点上看是否取得相同的结果

如何借助Salt Cloud配置AWS EC2实例

SaltStack项目于2011年启动。我们在2013年8月首次刊文介绍SaltStack;就在同一年,在拥有最多“关闭的问题”(issues closed)和“合并拉拽请求”(merged pull request)类别的所有公共软件库当中,GitHub的Octoverse在saltstack/salt软件库中名列第三。

2013年11月8日,Salt Cloud被并入到主Salt软件库,成为SaltStack 2014.1.0 Hydrogen版本的一部分。

Salt Cloud这款工具可以用来配置和管理得到支持的云服务提供商内部和之间的云服务器。比如说,系统管理员通过使用Salt Cloud配置的单个节点,就可以配置位于亚马逊网络服务(AWS)美国西海岸地区的五台新的Web服务器,配置位于Rackspace伦敦地区的三台新的应用服务器。

本文介绍了如何借助Salt Cloud配置亚马逊弹性计算云(EC2)实例;文章还介绍了如何使用Salt Cloud的地图(Map)功能,借助单单一个命令,配置几个并行的实例。

不过本文中所用的发行版是CentOS;除了安装方面的一些微小细节外,本文探讨的详细步骤适用于EC2上、可以运行最新版SaltStack的任何发行版。

除了AWS EC2外,SaltStack还支持其他的云服务提供商,比如Digital Ocean、GoGrid、谷歌计算引擎(Google Compute Engine)、OpenStack和Rackspace。功能矩阵列出了一张表,显示了针对每家云服务提供商的支持功能。

来自运行salt-cloud的实例、Salt Cloud命令行工具以及所配置实例的所有交互都通过SSH协议来实现。Salt Cloud不需要Salt Master守护进程。如果你想要使用Salt状态和模块来管理所配置实例,就需要设置Salt Master,这不在本文的探讨范围之内。

安装

salt-cloud命令行工具随作为EPEL一部分的salt-master 2014.1.0 RPM程序包一同发行。它应该可以安装在EC2里面的实例上。

$ yum install salt-master

“SaltStack”团队管理Ubuntu个人软件包存档(PPA),它含有所有最新版本的Ubuntu。Salt还出现在标准的openSUSE 13.1版本中。docs.saltstack.com提供了详尽具体的说明文档,含有说明步骤,介绍了如何针对其他发行版和平台安装Salt。

salt-cloud确实依赖Apache libcloud,这是一种可与30多家云服务提供商兼容的python库。可以使用pip命令,安装稳定版本的apache-libcloud。

$ pip install apache-libcloud

要是没有pip命令,你可能需要先安装python-pip程序包。如果你想把apache-libcloud安装在孤立的Python环境中,首先要检查virtualenv(虚拟环境)。

EC2安全组

salt-cloud配置的每个实例都需要属于至少一个AWS EC2安全组(Security Group),该安全组允许来自端口22/tcp、始发于运行salt-cloud的实例的入站流量。我在之前的一篇文章中已介绍了如何使用awscli工具创建安全组,

$ aws ec2 create-security-group\--group-name MySecurityGroupSaltCloudInstances\--description"The Security Group applied to all salt-cloud instances"$ aws ec2 authorize-security-group-ingress\--group-name MySecurityGroupSaltCloudInstances\--source-group MySecurityGroupSaltCloud\--protocol tcp--port 22

authorize-security-group-ingress命令允许MySecurityGroupSaltCloud安全组里面的任何EC2节点通过端口22/tcp,访问MySecurityGroupSaltCloudInstances里面的其他任何EC2节点。在我的安装环境中,运行salt-cloud的实例属于MySecurityGroupSaltCloud安全组。你需要创建一个安全组,运行salt-cloud的实例将属于该安全组。

EC2密钥对

salt-cloud依赖SSH协议上传和运用salt-bootstrap自动安装脚本。需要针对运行salt-cloud的实例生成SSH公钥和私钥。公钥同样需要上传到AWS EC2,成为密钥对。我在前一篇文章中也介绍了如何实现这一步。

想创建SSH私钥和SSH公钥:

$ ssh-keygen-f/etc/salt/my_salt_cloud_key-t rsa-b 4096$ aws ec2 import-key-pair--key-name my_salt_cloud_key\--public-key-material

Salt Cloud配置文件

Salt Cloud配置文件(Profile)为一组将由salt-cloud配置和管理的salt minion定义了一些基本的配置项。

在下面的/etc/salt/cloud.profiles文件里面,我已创建了一个配置文件,名为base_ec2_private;该配置文件使用我将在接下来定义的my_ec2_ap_southeast_2_private_ips提供商。我需要指定的另外唯一一个选项是minion将运行的那个映像的亚马逊机器映像(AMI) ID。ami-e7138ddd是CentOS.org发行、在AWS ap-southeast-2区域里面可用的CentOS 6.5映像的AMI ID。

base_ec2_private: provider: my_ec2_ap_southeast_2_private_ips image: ami-e7138ddd

Salt Cloud提供商

salt-cloud提供商定义了AWS EC2实例使用的一系列属性。

下面是我用来定义my_ec2_ap_southeast_2_private_ips提供商的/etc/salt/cloud.providers文件。该提供商被我的my base_ec2_private配置文件所使用。

my_ec2_ap_southeast_2_private_ips:

# salt-cloud应连接到的IP地址 ssh_interface: private_ips# AWS登录信息 id:@AWS_ACCESS_KEY_ID@ key:'@AWS_SECRET_ACCESS_KEY@'# SSH密钥 keyname: my_salt_cloud_key private_key:/etc/salt/my_salt_cloud_key# AWS位置 location: ap-southeast-2 availability_zone: ap-southeast-2a# AWS安全组 securitygroup: MySecurityGroupSaltCloudInstances# AWS AMI size: Micro Instance# minion被销毁后,删除AWS根卷 del_root_vol_on_destroy: True#本地用户 ssh_username: root#一旦销毁,就更名 rename_on_destroy: True provider: ec2

我定义了用@符号封装的几个属性,它们需要上传,以适合你的环境。

@AWS_ACCESS_KEY_ID@:AWS Access Key ID属于拥有足够EC2权限以配置新实例的IAM帐户。虽然salt-cloud确实支持AWS身份与访问管理(IAM)角色,但它们只适用于所配置的EC2 minion。静态的AWS访问密钥和秘密密钥仍被salt-cloud用来部署minion。

@AWS_SECRET_ACCESS_KEY@:属于AWS Access Key ID的AWS秘密密钥。

创建第一个salt-cloud minion

首先,你可能需要在SSH代理里面设置SSH密钥。

$ eval `ssh-agent`$ ssh-add/etc/salt/my_salt_cloud_key

下一步,调用传递配置文件名称的salt-cloud,其名称与你在/etc/salt/cloud.profiles里面配置的相一致,最后一个参数是新minion的名称。

$ salt-cloud--profile=base_ec2_private my_first_minion

salt-cloud使用SSH代理获取salt-bootstrap自动安装脚本,该脚本会安全地检测minion发行版,安装salt-minion程序包,如果你已设置好salt-master,还可以预先为salt-master提供minion的密钥。

如果成功,我们可以使用salt-cloud查询实例:

$ salt-cloud--action=show_instance my_first_minion

salt-cloud还支持其他操作,比如查询和设定AWS EC2标记:

$ salt-cloud--action=get_tags my_first_minion$ salt-cloud--action=set_tags my_first_minion environment=devel\ role=webserver

我们可以启用和禁用EC2终止保护(Termination Protection):

$ salt-cloud--action=show_term_protect my_first_minion$ salt-cloud--action=enable_term_protect my_first_minion$ salt-cloud--action=disable_term_protect my_first_minion

我们还可以重启minion:

$ salt-cloud--action=reboot my_first_minion

如果你已设置好了salt-master,应该能够通过salt命令行,运行标准的salt模块:

$ salt my_first_minion cmd.run'/sbin/ip address show'

当然了,如果salt-master状态已设置好,你可以运用state.highstate。

$ salt my_first_minion state.highstate

最后,我们可以使用--destroy选项销毁实例:

$ salt-cloud--destroy my_first_minion

Salt Cloud地图

我们前面已探讨了借助salt-cloud配置单个的EC2实例。现在,我们可以延伸开来,使用Slat Cloud地图(Maps),借助单单一个salt-cloud命令,创建多个实例。

在/etc/salt/cloud.map文件里面,我定义了三台都继承base_ec2_private配置文件的Web服务器。

base_ec2_private:- web1_prod- web2_prod- web3_prod

想配置所有三个实例,我只需要传递--map选项连同地图文件的位置。另外包括--parallel,地图里面的所有实例将同时被配置。

$ salt-cloud--map=/etc/salt/cloud.map--parallel

一旦配置完毕,我们就可以借助salt-cloud,查询地图里面的所有实例。

$ salt-cloud--map=/etc/salt/cloud.map--query

想终止地图里面的所有服务器,我们只要传递--destroy选项。

$ salt-cloud--map=/etc/salt/cloud.map–destroy

WireGuard 的CentOS 7安装教程实现隧道传输

本文详细指导CentOS 7上WireGuard的安装和配置,适用于内网ESXi虚拟机和公网境外服务器,重点在于设置路由和端口转发。对于没有公网IP的用户,可以考虑使用Tailscale或后续教程,本文仅针对有公网IP的情况。

服务端安装与配置

在CentOS 7中,首先确保关闭自带防火墙,使用iptables管理端口转发。对于云服务商提供的服务器,还需在控制台开启UDP端口,例如45678,可通过nc命令检查是否开启。

从WireGuard官网获取安装包,由于CentOS 7内核老旧,需选择适合的安装方式。创建公钥私钥对,这对服务端和客户端的认证至关重要。

配置服务端

获取服务器的默认网卡名称(如ens192),并创建wg0.conf文件进行配置。允许的路由(AllowedIPs)需根据需求设定,如全局代理或内网访问。

客户端配置

客户端的AllowedIPs设置要根据设备环境,如iPhone客户端可以设置为0.0.0.0/0实现全局代理,访问所有网络。macOS则需设置为仅内网访问,如192.168.1.X和10.0.0.X网段。

推荐配置策略

建议根据实际需求创建不同场景的配置文件,如macos.conf和macos.global.conf,仅在AllowedIPs上区别,以灵活适应不同网络访问场景。

阅读剩余
THE END