第十二周作业

1、通过ansible Roles编排实现 httpd 角色的部署

设置SSH免密码登陆
vim ansible_ssh.sh
#!/bin/bash
[ -f ~/.ssh/id_rsa ] || ssh-keygen -f ~/.ssh/id_rsa -P "" -q
rpm -q sshpass &> /dev/null || yum -y install sshpass &> /dev/null
prefix=10.0.0.
passwd=tianze
for i in {12..13};do
{
    sshpass -p $passwd ssh-copy-id -o StrictHostKeyChecking=no -i ~/.ssh/id_rsa root@$prefix$i &> /dev/null
}&
done
wait
bash ansible_ssh.sh
安装ansible
yum -y install ansible  ##事先需要配置好epel源 
vim /etc/ansible/hosts  ##文件末尾添加以下内容 主机清单
[webservers]  ##主机组
10.0.0.8
10.0.0.18
创建角色相关的目录:
mkdir -pv 、/data/ansible/roles/httpd/{tasks,handlers,files}
创建角色相关的文件:
cd /data/ansible/roles/httpd/
main.yml是task的入口文件
[root@centos8-1 httpd]$vim tasks/main.yml
- include: group.yml
- include: user.yml
- include: install.yml
- include: config.yml
- include: index.yml
- include: service.ym
[root@centos8-1 httpd]$vim tasks/group.yml
- name:create group
group: name=apache system=yes gid=80
[root@centos8-1 httpd]$vim tasks/user.yml
- name: create apache user
user: name=apache system=yes shell=/sbin/nologin home=/var/www/ uid=80 group=apache
[root@centos8-1 httpd]$vim tasks/install.yml
- name: install httpd package
yum: name=httpd
[root@centos8-1 httpd]$vim tasks/config.yml
- name: config file
copy: src=httpd.conf dest=/etc/httpd/conf/ backup=yes
notify: restart
root@centos8-1 httpd]$vim tasks/index.yml
- name: index.html
copy: src=index.html dest=/var/www/html/
[root@centos8-1 httpd]$vim tasks/service.yml
- name: start service
service: name=httpd state=started enabled=yes
[root@centos8-1 httpd]$vim handlers/main.yml
- name: restart
service: name=httpd state=restarted
在files目录下准备两个文件(可也用yum -y install httpd安装后把文件copy到files目录下)
[root@centos8-1 ansible]$ls files/
httpd.conf index.html
yum -y install httpd
[root@centos8-1 ansible]$cp /etc/httpd/conf/httpd.conf /roles/httpd/files/
[root@centos8-1 ansible]$echo The is httpd based roles > /roles/httpd/files/index.html
[root@centos8-1 ansible]$tree /data/ansible/roles/httpd/
/data/ansible/roles/httpd/
├── files
│   ├── httpd.conf
│   └── index.html
├── handlers
│   └── main.yml
└── tasks
├── config.yml
├── group.yml
├── index.yml
├── install.yml
├── main.yml
├── service.yml
└── user.yml
3 directories, 10 files
在playbook中调用角色
[root@centos8-1 ansible]$vim /data/ansible/role_httpd.yml
---
- hosts: db
remote_user: root
roles:
- httpd
运行playbook
[root@centos8-1 ansible]$ansible-playbook /data/ansible/role_httpd.yml


2、简述 MySQL 数据库访问的执行过程。

用户通过TCP/IP或者socket请求链接MySQL

经过连接层判断连接合法性,分配连接相应线程

连接层线程将用户需要执行的sql语句送到sql层处理

sql层经过,语句、语义、语法、sql类型、权限等判断

查询缓存查找,找到则直接返回给用户数据

如果缓存未找到,将sql送到解析器,解析,生成执行计划

优化器读取执行计划,判断并选择代价最小的执行计划

执行计划执行,生成获取数据的方法方案,交由存储引擎层继续处理

存储引擎层根据上层提供的方法,获取磁盘数据返回用户

此次查询信息会缓存到查询缓存中

3、S E L E C T 语句的完整语法较复杂,但至少包括的部分是 ( B)
A.仅 S E L E C T
B.S E L E C T ,F R O M
C.S E L E C T ,G R O U P
D.S E L E C T ,I N T O


4、一张表的主键个数为 ( C)
A.至多 3 个 B.没有限制
C.至多 1 个 D.至多 2 个

原文地址:https://www.cnblogs.com/xuziran88/p/13521282.html