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 虚拟主机,并实现下列要求

安装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 数据库,并实现下列要求

安装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 服务,满足下列要求

安装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"
posted @ 2024-08-26 16:43  Holdmyhand  阅读(7)  评论(0编辑  收藏  举报