美文网首页
马哥Linux第十六周

马哥Linux第十六周

作者: Liang_JC | 来源:发表于2020-06-07 16:51 被阅读0次

Q1、使用ansible的playbook实现自动化安装httpd

1、安装ansible,并做好基于ssh-key验证
[root@centos7 ~]# yum install ansible -y
[root@centos7 ~]# ssh-keygen
[root@centos7 ~]# ssh-copy-id 192.168.37.17
[root@centos7 ~]# ssh-copy-id 192.168.37.27

2、创建角色所需目录及文件
[root@centos7 ~]# mkdir -p /data/playbook/roles/httpd/{tasks,files,templates,vars,handlers}
[root@centos7 ~]# cd /data/playbook/roles/httpd/tasks/
[root@centos7 tasks]# touch user.yml install.yml config.yml data.yml service.yml
[root@centos7 tasks]# ls > main.yml

3、准备好模板文件
[root@centos7 tasks]# yum install httpd -y
[root@centos7 tasks]# cp -p /etc/httpd/conf/httpd.conf ../templates/httpd7.conf.j2

4、角色配置文件
[root@centos7 tasks]# vim /etc/ansible/hosts
[apps]
192.168.37.17
192.168.37.27

[root@centos7 tasks]# vim user.yml
- name: create user
  user: name=apache shell=/sbin/nologin system=yes create_home=no
  
[root@centos7 tasks]# vim install.yml 
- name: install     
  yum: name=httpd
  
[root@centos7 tasks]# vim ../templates/httpd7.conf.j2
listen {{ http_port }}
User {{ username }}
Group {{ groupname }}

[root@centos7 tasks]# vim ../vars/main.yml
http_port: 80
username: apache
groupname: apache

[root@centos7 tasks]# vim config.yml 
- name: config
  template: src=httpd7.conf.j2 dest=/etc/httpd/conf/httpd.conf
  notify: restart service
  when: ansible_distribution_major_version=="7"
- name: config
  template: src=httpd6.conf.j2 dest=/etc/httpd/conf/httpd.conf
  notify: restart service
  when: ansible_distribution_major_version=="6"
  
[root@centos7 tasks]# vim data.yml 
- name: data file
  copy: src=roles/httpd/files/index.html dest=/var/www/html
  
[root@centos7 tasks]# vim service.yml 
- name: service
  service: name=httpd state=started enabled=yes
  
[root@centos7 tasks]# vim main.yml 
- include: user.yml 
- include: install.yml
- include: config.yml
- include: data.yml
- include: service.yml

[root@centos7 tasks]# vim ../handlers/main.yml 
- name: restart service
  service: name=httpd state=restarted

[root@centos7 tasks]# cd /data/playbook
[root@centos7 playbook]# vim httpd_role.yml
- hosts: apps
  remote_user: root
  roles:
    - httpd 
    
[root@centos7 tasks]# echo "welcome to magedu" >> /data/playbook/roles/httpd/files/index.html

5、验证安装
[root@centos7 tasks]# ansible-playbook -C /data/playbook/httpd_role.yml     #检查配置文件

PLAY [apps] *******************************************************************************************************

TASK [Gathering Facts] ********************************************************************************************
ok: [192.168.37.17]
ok: [192.168.37.27]

TASK [httpd : create user] ****************************************************************************************
ok: [192.168.37.27]
ok: [192.168.37.17]

TASK [httpd : install] ********************************************************************************************
changed: [192.168.37.17]
changed: [192.168.37.27]

TASK [httpd : config] *********************************************************************************************
changed: [192.168.37.17]
changed: [192.168.37.27]

TASK [httpd : data file] ******************************************************************************************
changed: [192.168.37.27]
changed: [192.168.37.17]

TASK [httpd : service] ********************************************************************************************
changed: [192.168.37.27]
changed: [192.168.37.17]

RUNNING HANDLER [httpd : restart service] *************************************************************************
changed: [192.168.37.27]
changed: [192.168.37.17]

PLAY RECAP ********************************************************************************************************
192.168.37.17              : ok=7    changed=5    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
192.168.37.27              : ok=7    changed=5    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0

[root@centos7 tasks]# ansible-playbook /data/playbook/httpd_role.yml        #安装

PLAY [apps] *******************************************************************************************************

TASK [Gathering Facts] ********************************************************************************************
ok: [192.168.37.17]
ok: [192.168.37.27]

TASK [httpd : create user] ****************************************************************************************
ok: [192.168.37.17]
ok: [192.168.37.27]

TASK [httpd : install] ********************************************************************************************
changed: [192.168.37.17]
changed: [192.168.37.27]

TASK [httpd : config] *********************************************************************************************
ok: [192.168.37.17]
ok: [192.168.37.27]

TASK [httpd : data file] ******************************************************************************************
ok: [192.168.37.27]
ok: [192.168.37.17]

TASK [httpd : service] ********************************************************************************************
changed: [192.168.37.27]
changed: [192.168.37.17]

PLAY RECAP ********************************************************************************************************
192.168.37.17              : ok=6    changed=2    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
192.168.37.27              : ok=6    changed=2    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0

Q2、建立httpd服务器,要求提供两个基于名称的虚拟主机:
(1)www.X.com,页面文件目录为/web/vhosts/x;错误日志为 /var/log/httpd/x.err,访问日志为/var/log/httpd/x.access
(2)www.Y.com,页面文件目录为/web/vhosts/y;错误日志为 /var/log/httpd/www2.err,访问日志为/var/log/httpd/y.access
(3)为两个虚拟主机建立各自的主页文件index.html,内容分别为其对应的主机名

[root@Centos7 ~]# cd /etc/httpd/conf.d/
[root@Centos7 conf.d]# vim web.conf
<virtualhost *:80>
    documentroot "/web/vhosts/x"
    servername www.x.com
    customlog "logs/x.access" combined
    errorlog "logs/x.err"
    <Directory "web/vhosts/x">           
        Require all granted
        Options Indexes FollowSymLinks
    </Directory>
</virtualhost>

<virtualhost *:80>
    documentroot "/web/vhosts/y"
    servername www.y.com
    customlog "logs/y.access" combined
    errorlog "logs/www2.err"
    <Directory "web/vhosts/y">
        Require all granted
        Options Indexes FollowSymLinks
    </Directory>
</virtualhost>

[root@Centos7 conf.d]# mkdir -p /web/vhosts/{x,y}
[root@Centos7 conf.d]# echo www.x.com > /web/vhosts/x/index.html
[root@Centos7 conf.d]# echo www.y.com > /web/vhosts/y/index.html
[root@Centos7 conf.d]# chown -R apache:apache /web/vhosts/
[root@Centos7 conf.d]# apachectl graceful

#验证结果
[root@Centos7 conf.d]# ls -lh /var/log/httpd/x.* /var/log/httpd/y.access /var/log/httpd/www2.err 
-rw-r--r-- 1 root root  312 Apr  4 16:34 /var/log/httpd/www2.err
-rw-r--r-- 1 root root  904 Apr  4 16:36 /var/log/httpd/x.access
-rw-r--r-- 1 root root 1.3K Apr  4 16:35 /var/log/httpd/x.err
-rw-r--r-- 1 root root  271 Apr  4 16:36 /var/log/httpd/y.access

[root@Centos7 ~]# curl http://www.x.com
www.x.com
[root@Centos7 ~]# curl http://www.y.com
www.y.com

相关文章

  • 马哥Linux第十六周

    Q1、使用ansible的playbook实现自动化安装httpd Q2、建立httpd服务器,要求提供两个基于名...

  • 马哥Linux第六周

    Q1、自建yum仓库,分别为网络源和本地源 Q2、编译安装http2.4,实现可以正常访问,并将编译步骤和结果提交...

  • 文件系统常用命令:cd命令

    为方便马哥学员的理解和使用,马哥linux运维团队特别做了《马哥Linux命令大全锦集》,命令是集合了马哥教育学员...

  • Linux开发被大数据云计算带火啦让我门一起学习Linux教程大

    视频下载地址 Linux运维 马哥教程Liunx新 马哥2016linux就业班+架构班+运维班全套新 dubbo...

  • 马哥Linux第十八周

    Q1、实现基于MYSQL验证的vsftpd虚拟用户访问 Q2、通过NFS实现服务器/www共享访问 Q3、配置sa...

  • 马哥Linux第十五周

    Q1、编写脚本,支持让用户自主选择,使用mysqldump还是xtraback全量备份。 Q2、配置Mysql主从...

  • 马哥Linux第十一周

    Q1、编写脚本/root/bin/checkip.sh,每5分钟检查一次,如果发现通过ssh登录失败 次数超过10...

  • 马哥Linux第十二周

    Q1、配置chrony服务,实现服务器时间自动同步 Q2、实现cobbler+pxe自动化装机 客户端测试: 新建...

  • 马哥Linux第十七周

    Q1、部署分离的LAMP,部署到二台服务器上,php加载xcache模块 环境:2台主机 server-A 192...

  • 马哥Linux第十九周

    Q1、简述lvs四种集群特点及使用场景 lvs-nat:修改请求报文的目标IP,多目标IP的DNAT本质是多目标I...

网友评论

      本文标题:马哥Linux第十六周

      本文链接:https://www.haomeiwen.com/subject/ahictktx.html