# 实现keepalived nopreempt的步骤

### 1. 安装keepalived
首先,我们需要在主备服务器上安装keepalived,通过以下命令来安装:
```bash
sudo apt-get install keepalived
```

### 2. 配置keepalived
接下来,需要配置keepalived,在主服务器和备份服务器上创建配置文件,通常为`/etc/keepalived/keepalived.conf`。配置文件内容如下:

主服务器配置:
```conf
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 51
priority 100
advert_int 1
nopreempt # 设置为不抢占模式
authentication {
auth_type PASS
auth_pass mypassword
}
virtual_ipaddress {
192.168.1.1
}
}
```

备份服务器配置:
```conf
vrrp_instance VI_1 {
state BACKUP
interface eth0
virtual_router_id 51
priority 50
advert_int 1
nopreempt # 设置为不抢占模式
authentication {
auth_type PASS
auth_pass mypassword
}
virtual_ipaddress {
192.168.1.1
}
}
```

### 3. 启动keepalived
配置完成后,启动keepalived服务:
```bash
sudo systemctl start keepalived
```

### 4. 验证keepalived
可以通过以下命令查看keepalived的运行状态:
```bash
sudo systemctl status keepalived
```

### 代码解释
- `vrrp_instance VI_1`:定义了一个VRRP实例,可以根据实际情况更改名称。
- `state MASTER` / `state BACKUP`:指定当前服务器的角色,主服务器为MASTER,备份服务器为BACKUP。
- `interface eth0`:指定用于VRRP通信的网络接口。
- `virtual_router_id 51`:指定VRRP的虚拟路由器ID,主备服务器要保持一致。
- `priority`:指定服务器的优先级,数字越大优先级越高。
- `advert_int 1`:VRRP广播间隔时间,单位为秒。
- `nopreempt`:设置为不抢占模式,表示当前服务器获取到主服务器角色后不会主动让出。
- `authentication`:VRRP密码认证配置。
- `virtual_ipaddress`:定义VRRP虚拟IP地址,所有VRRP服务器都应当共享相同的虚拟IP地址。

### 总结
通过以上步骤,我们成功实现了keepalived的配置,并且设置了`nopreempt`参数,确保主备服务器在发生故障切换时不会自动抢占主服务器角色,避免不必要的切换。希望这篇文章对你有所帮助,如果有任何疑问欢迎留言。