UCP练习
1.配置免密登录
编辑/etc/hosts文件,添加server1 server2
192.168.40.100 server1
192.168.40.101 server2
两台分别执行
ssh-keygen
ssh-copy-id server1
ssh-copy-id server2
2.配置dns服务器
在server1上配置uos.com
解析,www.uos.com
为172.25.0.11,admin.uos.com
为172.25.0.33
#安装bind软件包
yum install bind bind-utils
编辑named服务配置文件/etc/named.conf,options中修改监听都为any,允许查询any
listen-on port 53 { any; };
listen-on-v6 port 53 { any; };
allow-query { any; };
添加uos.com的zone
zone "uos.com" IN {
type master;
file "/var/named/uos.com.zones";
allow-update { none; };
};
#include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
创建uos.com的zone解析文件
cp -p /var/named/named.localhost /var/named/uos.com.zones
编辑uos.com的zone解析文件/var/named/uos.com.zones
$TTL 1D
@ IN SOA uos.com. root.uos.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS uos.com.
A 127.0.0.1
AAAA ::1
www IN A 172.25.0.11
admin IN A 172.25.0.33
设置named服务开机自启并且现在启动
systemctl enable named --now
3.配置dns缓存服务器
在server2上配置dns缓存,使用server2可以解析server1上配置的所有地址
编辑named服务配置文件/etc/named.conf,options中修改监听都为any,允许查询any。添加forwarders
listen-on port 53 { any; };
listen-on-v6 port 53 { any; };
allow-query { any; };
forward only;
forwarders { 192.168.40.100; } #server1的ip
注释掉默认的zone和include中的zone
#zone "." IN {
# type hint;
# file "named.ca";
#};
#include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
设置named服务开机自启并且现在启动
systemctl enable named --now
4.nginx虚拟主机
在server2上使用 Nginx 配置基于端口的 web 虚拟主机,并实现下列要求
- 虚拟主机监听的端口为 8899
设置 DocumentRoot 为/usr/share/nginx/html/port - 下载 http://virtual.storage.uosexam.com/exam/port.html 文件
到/usr/share/nginx/html/port 下并重命名为 index.html - 访问 http://server2.uosexam.com:8899 即可看
安装ningx,设置开机自启并现在启动
yum install nginx
systemctl enable nginx --now
编辑nginx的配置文件/etc/nginx.conf,修改虚拟主机监听端口、server_name、root
include /etc/nginx/conf.d/*.conf;
server {
listen 8899;
listen [::]:8899;
server_name server2.uosexam.com;
root /usr/share/nginx/html/port;
index index.html
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
error_page 404 /404.html;
创建port文件夹,下载index.html
mkdir -p /usr/share/nginx/html/port
curl -o /usr/share/nginx/html/port/index.html http://virtual.storage.uosexam.com/exam/port.html
检查nginx配置文件,重启nginx
nginx -t
nginx -s reload
坑:server2.uosexam.com这个主机名最好在两台上都添加到/etc/hosts中
5.ISCSI
在server2上配置 iscsi 服务,并满足下列要求
- 磁盘名为 iqn.2020-06.com.uosexam:server
- 对/dev/vdb 进行分区,大小为 5G
- 使用 uos_disk 作为后端卷,大小为/dev/vdb1 分区大小
安装targetcli
yum install target
分区
echo -e "n\np\n\n\n+5G\nw\n" | fdisk /dev/vdb
使用targetcli交换式工具创建,执行targetcli后可以ls先看一下结构
/backstores/block create uos_disk /dev/vdb1
/iscsi create iqn.2020-06.com.uosexam:server
/iscsi/iqn.2020-06.com.uosexam:server/tpg1/acls create iqn.2020-06.com.uosexam:client
/iscsi/iqn.2020-06.com.uosexam:server/tpg1/luns create /backstores/block/uos_disk
saveconfig
exit
设置target服务开机自启并现在启动
systemctl enable target.service --now
6.挂载ISCSI
在server1上挂载 server2 提供的 iscsi 存储,并满足下列要求
- iscsi 设备在系统重启后能自动加载
- 在 iscsi 块设备上划分一个 2G 的分区,格式为 ext4
- 将分区永久挂载在/mnt/iscsi 上
安装open-iscsi
yum install open-iscsi
修改/etc/iscsi/initiatorname.iscsi为上题acl配置的iqn,,设置服务开机自启并现在启动
InitiatorName=iqn.2020-06.com.uosexam:client
#修改完后需要重启iscsid服务,建议也重启一下iscsi服务
systemctl enable iscsi iscsid --now
扫描存储
iscsiadm --mode discovery --type sendtargets --portal server2
登录链接存储
iscsiadm -m node -T iqn.2020-06.com.uosexam:server -l
#登录成功即可查看到一块新的盘了
lsblk
修改/etc/iscsi/iscsid.conf 开机自动链接存储,取消注释automatic这行,注释manual这行
# To request that the iscsi initd scripts startup a session set to "automatic".
#取消注释automatic这行
node.startup = automatic
#
# To manually startup the session set to "manual". The default is manual.
#注释manual这行
#node.startup = manual
分区,格式化创建ext4文件系统
echo -e "n\np\n\n\n+2G\nw\n" | fdisk /dev/sdb
mkfs.ext4 /dev/sdb1
创建/mnt/iscsi挂载点,编辑/etc/fstab永久挂载
mkdir /mnt/iscsi
#/etc/fstab添加
/dev/sdb1 /mnt/iscsi ext4 defaults,_netdev,nofail 0 0
mount -a
#UOS上open-iscsi包估计有问题,开机不会自动挂载,添加一个开机任务
echo "/usr/sbin/iscsiadm -m node -l" >> /etc/rc.local
chmod +x /etc/rc.local
7.数据库MariaDB
在server1上创建 mariadb 数据库,并实现下列要求
- root 密码设置为 txuos
- 下载 http://virtual.storage.uosexam.com/exam/scott.sql 文件
- 导入 scott.sql 文件
- 为 deepin 用户授权,只能访问 scott 库,密码为 txuos
安装mariadb数据库,设置开机自启并现在启动,下载scott.sql文件
yum install mariadb-server
systemctl enable mariadb --now
wget http://virtual.storage.uosexam.com/exam/scott.sql
设置数据库root密码,导入scott.sql文件
mysqladmin -u root password txuos
mysql -uroot -ptxuos < scott.sql
授权deepin用户
mysql -uroot -ptxuos -e "grant all privileges on scott.* to 'deepin'@'%' identified by 'txuos';"
8.编写脚本
在server1上创建名为/root/test.sh 的脚本、完成以下功能
- 判断传入的位置参数有且只有一个
- 执行脚本时,传入一个位置参数:
参数为 quit,则输出 exit
参数为 yes,则输出 running
为其它任意值,均执行非正常退出,脚本退出码 11 (返回值)
#!/bin/bash
if [ $# -eq 1 ]; then
case "$1" in
quit)
echo "exit"
;;
yes)
echo "running"
;;
*)
exit 11
;;
esac
else
exit 11
fi
9.docker映射web服务
在server1上面搭建 docker 服务,满足下列要求
- 下载 http://virtual.storage.uosexam.com/exam/nginx.tar 的文件
- 导入 nginx.tar 到 docker 并将 nginx 设置为开机自动启动
- 在镜像中启动 nginx 服务并映射到 server1 的 8888 端口,访问内容为 I'm UOS
安装docker,设置开机自启并现在启动,下载nginx镜像并导入
yum install docker
systemctl enable docker --now
wget http://virtual.storage.uosexam.com/exam/nginx.tar
docker load -i nginx.tar
#查看镜像
docker images
创建访问内容,映射启动nginx容器
echo "I'm UOS" > index.html
docker run -itd --restart always -p 8888:80 -v /root/index.html:/usr/share/nginx/html/index.html nginx:latest
#查看运行情况
docker ps
10.使用Ansible安装软件
在server1上编写一个 playbook 名称为/root/yum.yml、满足下列要求
- 在 web 组安装软件包”php-fpm”、”samba”
- 在 db 组安装”mariadb-server”
- 保证所有机器都是启动的、并实现开机自启动
- 注意:ansible 执行时需指定 python3 解释器(例如:ansible-playbookexam.yml -e
"ansible_python_interpreter=/usr/bin/python3")
安装Ansible,创建主机组hosts文件
yum install ansible
vim /etc/ansible/hosts
[web]
server1
[db]
server2
#测试
ansible -m ping all -e "ansible_python_interpreter=/usr/bin/python3"
编写playbook,yum.yml
---
- hosts: web
tasks:
- name: Install PHP-FPM and Samba
package:
name:
- php-fpm
- samba
state: present
- name: Start and enable php-fpm
service:
name: php-fpm
state: started
enabled: yes
- name: Start and enable Samba
service:
name: smb
state: started
enabled: yes
- hosts: db
tasks:
- name: Install MariaDB
package:
name: mariadb-server
state: present
- name: Start and enable MariaDB
service:
name: mariadb
state: started
enabled: yes
运行
ansible-playbook yum.yml -e "ansible_python_interpreter=/usr/bin/python3"