ansible 部署 httpd 及 http虛擬主機(jī)

1、使用ansible的playbook實(shí)現(xiàn)自動(dòng)化安裝httpd

#安裝 ansible
~]# yum install ansible -y

#配置ssh免密
~]# ssh-keygen 
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Created directory '/root/.ssh'.
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:iXQokv/vUug487my1JeUIncQZ4Y5k8K4yDJ9L0Z1rpo root@localhost.localdomain
The key's randomart image is:
+---[RSA 2048]----+
|   o  .++        |
|  ..o B*.        |
|.oo..o+=.        |
|+.oooo +.o       |
|.. oo.+oS        |
|    o=++..       |
|   ..*o.o        |
|   .E o+         |
|    .*++o        |
+----[SHA256]-----+

# 將公鑰copy到被管理的主機(jī)上
~]# ssh-copy-id localhost
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
The authenticity of host 'localhost (::1)' can't be established.
ECDSA key fingerprint is SHA256:NwVk32KmJr1JyYnb8OXlmdIULF5VG1/QIHjMqvbn1aY.
ECDSA key fingerprint is MD5:47:cb:af:a7:4f:62:59:27:13:ea:f9:a6:e6:e8:44:f9.
Are you sure you want to continue connecting (yes/no)? yes
/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@localhost's password: 

Number of key(s) added: 1

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

# ansible playbook 目錄結(jié)構(gòu)
~]# tree
.
├── hosts_list                    # 主機(jī)列表文件
├── httpd.yml                     # 部署 httpd 的 playbook
└── roles                         # 自定義 role 目錄
    └── httpd
        └── tasks
            └── main.yml          # httpd role的task 文件

3 directories, 3 files

~]# cat hosts_list 
[httpd]
localhost
~]# cat httpd.yml 
- hosts:
    - httpd

  roles:
    - httpd
    
~]# cat roles/httpd/tasks/main.yml 
- name: install httpd
  yum:
    name: httpd
    state: present

- name: enable httpd.service
  systemd:
    name: httpd.service
    enabled: true
    state: started

- name: stop firewalld.service
  systemd:
    name: firewalld.service
    enabled: false
    state: stopped

- name: disable selinux
  selinux:
    state: disabled
  register: selinux_status

- name: setenforce 0
  command: setenforce 0
  when: selinux_status.state != "disabled"
  
  
~]# ansible-playbook httpd.yml -i hosts_list 

PLAY [httpd] ***********************************************************************************************************************************

TASK [Gathering Facts] *************************************************************************************************************************
ok: [localhost]

TASK [httpd : install httpd] *******************************************************************************************************************
changed: [localhost]

TASK [httpd : enable httpd.service] ************************************************************************************************************
changed: [localhost]

TASK [httpd : stop firewalld.service] **********************************************************************************************************
changed: [localhost]

TASK [httpd : disable selinux] *****************************************************************************************************************
 [WARNING]: SELinux state temporarily changed from 'enforcing' to 'permissive'. State change will take effect next reboot.

changed: [localhost]

TASK [httpd : setenforce 0] ********************************************************************************************************************
skipping: [localhost]

PLAY RECAP *************************************************************************************************************************************
localhost                  : ok=5    changed=4    unreachable=0    failed=0   

2、建立httpd服務(wù)器,要求提供兩個(gè)基于名稱的虛擬主機(jī):

(1)www.X.com袱院,頁面文件目錄為/web/vhosts/x;錯(cuò)誤日志為/var/log/httpd/x.err,訪問日志為/var/log/httpd/x.access

~]# cat /etc/httpd/conf.d/site-x.conf 
<VirtualHost 192.168.58.149:80>
 DirectoryIndex index.html 
 ServerName www.X.com
 DocumentRoot "/web/vhosts/x"
 ErrorLog "/var/log/httpd/x.err"
 CustomLog  /var/log/httpd/x.access  combined
 <Directory "/web/vhosts/x">
  Options -Indexes +FollowSymlinks
  AllowOverride All
  Require all granted
 </Directory>
</VirtualHost>

(2)www.Y.com瞭稼,頁面文件目錄為/web/vhosts/y;錯(cuò)誤日志為 /var/log/httpd/www2.err忽洛,訪問日志為/var/log/httpd/y.access

~]# cat /etc/httpd/conf.d/site-y.conf  
<VirtualHost 192.168.58.149:80>
 DirectoryIndex index.html 
 ServerName www.Y.com
 DocumentRoot "/web/vhosts/y"
 ErrorLog "/var/log/httpd/y.err"
 CustomLog  /var/log/httpd/y.access  combined
 <Directory "/web/vhosts/y">
  Options -Indexes +FollowSymlinks
  AllowOverride All
  Require all granted
 </Directory>
</VirtualHost>

(3)為兩個(gè)虛擬主機(jī)建立各自的主頁文件index.html,內(nèi)容分別為其對(duì)應(yīng)的主機(jī)名

~]# mkdir -p /web/vhosts/{x,y}

~]# cat /web/vhosts/x/index.html 
www.X.com
~]# cat /web/vhosts/y/index.html  
www.Y.com

~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.58.149 www.X.com
192.168.58.149 www.Y.com

~]# systemctl reload httpd      

~]# curl www.X.com
www.X.com

~]# curl www.Y.com           
www.Y.com
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末环肘,一起剝皮案震驚了整個(gè)濱河市欲虚,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌悔雹,老刑警劉巖复哆,帶你破解...
    沈念sama閱讀 222,378評(píng)論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異腌零,居然都是意外死亡梯找,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,970評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門益涧,熙熙樓的掌柜王于貴愁眉苦臉地迎上來锈锤,“玉大人,你說我怎么就攤上這事闲询⊙烙剑” “怎么了?”我有些...
    開封第一講書人閱讀 168,983評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵嘹裂,是天一觀的道長。 經(jīng)常有香客問我摔握,道長寄狼,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,938評(píng)論 1 299
  • 正文 為了忘掉前任氨淌,我火速辦了婚禮泊愧,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘盛正。我一直安慰自己删咱,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,955評(píng)論 6 398
  • 文/花漫 我一把揭開白布豪筝。 她就那樣靜靜地躺著痰滋,像睡著了一般摘能。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上敲街,一...
    開封第一講書人閱讀 52,549評(píng)論 1 312
  • 那天团搞,我揣著相機(jī)與錄音,去河邊找鬼多艇。 笑死逻恐,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的峻黍。 我是一名探鬼主播复隆,決...
    沈念sama閱讀 41,063評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼姆涩!你這毒婦竟也來了挽拂?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,991評(píng)論 0 277
  • 序言:老撾萬榮一對(duì)情侶失蹤阵面,失蹤者是張志新(化名)和其女友劉穎轻局,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體样刷,經(jīng)...
    沈念sama閱讀 46,522評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡仑扑,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,604評(píng)論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了置鼻。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片镇饮。...
    茶點(diǎn)故事閱讀 40,742評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖箕母,靈堂內(nèi)的尸體忽然破棺而出储藐,到底是詐尸還是另有隱情,我是刑警寧澤嘶是,帶...
    沈念sama閱讀 36,413評(píng)論 5 351
  • 正文 年R本政府宣布钙勃,位于F島的核電站,受9級(jí)特大地震影響聂喇,放射性物質(zhì)發(fā)生泄漏辖源。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,094評(píng)論 3 335
  • 文/蒙蒙 一希太、第九天 我趴在偏房一處隱蔽的房頂上張望克饶。 院中可真熱鬧,春花似錦誊辉、人聲如沸矾湃。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,572評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽邀跃。三九已至霉咨,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間坞嘀,已是汗流浹背躯护。 一陣腳步聲響...
    開封第一講書人閱讀 33,671評(píng)論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留丽涩,地道東北人棺滞。 一個(gè)月前我還...
    沈念sama閱讀 49,159評(píng)論 3 378
  • 正文 我出身青樓,卻偏偏與公主長得像矢渊,于是被迫代替她去往敵國和親继准。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,747評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容