第十六周

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

(1)配置SSH认证连接

[root@centos01 ~]#ssh-keygen 
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:WlyQgX3QFX+6FwZBcTPQcUGw8ShZiIPJowuedquYSZw root@centos01
The key's randomart image is:
+---[RSA 2048]----+
|      .o*=..=X*B+|
|      .=o+o.o.B.+|
|      . ..oo +...|
|   . . . .  . .o |
|  . o . S     .o |
|. .+ o o      ...|
| E. . o       . .|
|. +  .         . |
| + ..            |
+----[SHA256]-----+
[root@centos01 ~]#ssh-copy-id 192.168.7.72
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@192.168.7.72's password: 

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh '192.168.7.72'"
and check to make sure that only the key(s) you wanted were added.

[root@centos01 ~]#ssh 192.168.7.72
Last login: Tue Jun 16 11:43:43 2020 from 192.168.0.1

(2)yaml文件编写

- hosts: webservers                 #需先在配置文件中加入72,73两台机器
  remote_user: root
  tasks:
    - name: Install httpd
      yum: name=httpd state=present
    - name: Install configure file
      copy: src=/etc/httpd/conf/httpd.conf dest=/etc/httpd/conf/
      notify: restart httpd
    - name: ensure apache is running
      service: name=httpd state=started enabled=yes
  handlers:
    - name: restart httpd
      service: name=httpd state=restarted

(3)运行测试

[root@centos01 ~]#ansible-playbook httpd.yml -C

PLAY [webservers] *************************************************************************************************************************************************************************

TASK [Gathering Facts] ********************************************************************************************************************************************************************
ok: [192.168.7.72]
ok: [192.168.7.73]

TASK [Install httpd] **********************************************************************************************************************************************************************
changed: [192.168.7.72]
changed: [192.168.7.73]

TASK [Install configure file] *************************************************************************************************************************************************************
changed: [192.168.7.73]
changed: [192.168.7.72]

TASK [ensure apache is running] ***********************************************************************************************************************************************************
changed: [192.168.7.73]
changed: [192.168.7.72]

RUNNING HANDLER [restart httpd] ***********************************************************************************************************************************************************
changed: [192.168.7.73]
changed: [192.168.7.72]

PLAY RECAP ********************************************************************************************************************************************************************************
192.168.7.72               : ok=5    changed=4    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
192.168.7.73               : ok=5    changed=4    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0

(4)测试通过后再进行安装并验证

[root@centos01 ~]#ansible-playbook httpd.yml 

PLAY [webservers] *************************************************************************************************************************************************************************

TASK [Gathering Facts] ********************************************************************************************************************************************************************
ok: [192.168.7.73]
ok: [192.168.7.72]

TASK [Install httpd] **********************************************************************************************************************************************************************
changed: [192.168.7.73]
changed: [192.168.7.72]

TASK [Install configure file] *************************************************************************************************************************************************************
ok: [192.168.7.72]
ok: [192.168.7.73]

TASK [ensure apache is running] ***********************************************************************************************************************************************************
changed: [192.168.7.73]
changed: [192.168.7.72]

PLAY RECAP ********************************************************************************************************************************************************************************
192.168.7.72               : ok=4    changed=2    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
192.168.7.73               : ok=4    changed=2    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0 

验证,以72为例

[root@centos02 ~]#ss -ntl             #查看端口
State       Recv-Q Send-Q                                                Local Address:Port                                                               Peer Address:Port              
LISTEN      0      128                                                               *:22                                                                            *:*                  
LISTEN      0      100                                                       127.0.0.1:25                                                                            *:*                  
LISTEN      0      128                                                            [::]:80                                                                         [::]:*                  
LISTEN      0      128                                                            [::]:22                                                                         [::]:*                  
LISTEN      0      100                                                           [::1]:25                                                                         [::]:*                  
[root@centos02 ~]#systemctl status httpd.service             #查看运行状态
● httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
   Active: active (running) since Tue 2020-06-16 15:50:09 CST; 1min 11s ago
     Docs: man:httpd(8)
           man:apachectl(8)
 Main PID: 4372 (httpd)
   Status: "Total requests: 0; Current requests/sec: 0; Current traffic:   0 B/sec"
   CGroup: /system.slice/httpd.service
           ├─4372 /usr/sbin/httpd -DFOREGROUND
           ├─4377 /usr/sbin/httpd -DFOREGROUND
           ├─4378 /usr/sbin/httpd -DFOREGROUND
           ├─4379 /usr/sbin/httpd -DFOREGROUND
           ├─4380 /usr/sbin/httpd -DFOREGROUND
           └─4381 /usr/sbin/httpd -DFOREGROUND

已成功运行

2、建立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/y.err,访问日志为/var/log/httpd/y.access
(3)为两个虚拟主机建立各自的主页文件index.html,内容分别为其对应的主机名
1、建立主界面目录

[root@centos01 ~]#mkdir /web/vhosts/{x,y} -p
[root@centos01 ~]#ll /web/vhosts/
total 0
drwxr-xr-x 2 root root 6 Jun 16 19:00 x
drwxr-xr-x 2 root root 6 Jun 16 19:00 y

2、配置网页显示

[root@centos01 ~]#vim /web/vhosts/x/index.html
www.X.com
[root@centos01 ~]#vim /web/vhosts/y/index.html
www.Y.com

3、添加主机对应域名

[root@centos01 ~]#vim /etc/hosts
192.168.7.71 www.X.com www.Y.com

4、配置文件

[root@centos01 ~]#vim /etc/httpd/conf.d/test1.conf
<virtualhost *:80>
    documentroot /web/vhosts/x
    servername www.X.com
    ErrorLog "/var/log/httpd/x.err"
    CustomLog "/var/log/httpd/x.access" combined
    <Directory "/web/vhosts/x">
        Require all granted
    </Directory>
</virtualhost>

<virtualhost *:80>
    documentroot /web/vhosts/y
    servername www.Y.com
    ErrorLog "/var/log/httpd/x.err"                                                                                                                                                    
    CustomLog "/var/log/httpd/x.access" combined
    <Directory "/web/vhosts/y">
        Require all granted
    </Directory>
</virtualhost>

5、重新启动httpd并验证

[root@centos01 ~]#systemctl restart httpd
[root@centos01 ~]#ss -ntl
State       Recv-Q Send-Q                                                Local Address:Port                                                               Peer Address:Port              
LISTEN      0      128                                                               *:22                                                                            *:*                  
LISTEN      0      100                                                       127.0.0.1:25                                                                            *:*                  
LISTEN      0      128                                                            [::]:80                                                                         [::]:*                  
LISTEN      0      128                                                            [::]:22                                                                         [::]:*                  
LISTEN      0      100                                                           [::1]:25                                                                         [::]:*                  

查看访问结果

[root@centos01 ~]#curl www.X.com
www.X.com
[root@centos01 ~]#curl www.Y.com
www.Y.com

查看日志目录

[root@centos01 ~]#ll /var/log/httpd/
total 12
-rw-r--r-- 1 root root 3474 Jun 16 18:52 access_log
-rw-r--r-- 1 root root 3192 Jun 17 17:28 error_log
-rw-r--r-- 1 root root  176 Jun 17 17:24 x.access
-rw-r--r-- 1 root root    0 Jun 17 17:24 x.err
-rw-r--r-- 1 root root    0 Jun 17 17:28 y.access
-rw-r--r-- 1 root root    0 Jun 17 17:28 y.err
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,590评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 86,808评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,151评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,779评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,773评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,656评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,022评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,678评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,038评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,659评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,756评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,411评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,005评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,973评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,053评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,495评论 2 343