ÀÖÓãµç¾º





½ÌÓýÐÐÒµA¹ÉIPOµÚÒ»¹É£¨¹ÉƱ´úÂë 003032£©

È«¹ú×Éѯ/ͶËßÈÈÏߣº400-618-4000

AnsibleÈçºÎ±àÅŲ¿Êðlamp+discuz£¿

¸üÐÂʱ¼ä:2019Äê12ÔÂ06ÈÕ17ʱ59·Ö À´Ô´:ÀÖÓã²¥¿Í ä¯ÀÀ´ÎÊý:

ansibleÊǷdz£Ç¿´óµÄÅäÖÃ×Ô¶¯»¯¹¤¾ß£¬Ö÷ÒªµÄÌØµãÊDz¿Êð¿ì½Ý¼òµ¥£¬¿Í»§¶ËÖ»ÐèÒª´ò¿ªssh·þÎñ¼´¿É¡£

Ansible±àÅŲ¿Êðlamp+discuz01

Ëü¿ÉÒÔʹÓÃYAML¸ñʽÀ´±àдPALYBOOKʵÏÖ±àÅŲ¿Ê𣬲¢ÇÒ¿ÉÒÔʹÓÃrolesÀ´ÊµÏÖÀàËÆ±à³ÌÓïÑÔÖк¯ÊýµÄ·â×°Ó÷¨¡£Ê¹ÓÃroles¿ÉÒÔ·½±ã²¿Êð´óÐ͵Ä×Ô¶¯»¯ÈÎ Îñ¡£ÍƼöÁ˽âlinuxÔÆ¼ÆËã+ÔËά¿ª·¢¿Î³Ì¡£

ÏÂÃæÊ¹ÓÃansibleÀ´±àÅŲ¿Êðlamp+discuz£¬´ó¼Ò¿ÉÒÔ¾ÙÒ»·´ÈýÀ´±àÅŲ¿ÊðÆäËüÓ¦Óá£

µÚ1²½: ´´½¨rolesĿ¼¼°Îļþ,²¢È·ÈÏĿ¼½á¹¹

master# cd /etc/ansible/roles/
master# mkdir -p
{httpd,mysql,php}/{files,tasks,handlers,templates,vars,met a}
master# touch
{httpd,mysql,php}/{tasks,handlers,vars,meta}/main.yml

µÚ2²½: ×¼±¸httpdÏà¹ØÎļþ

master# ls /etc/ansible/roles/httpd/files/ Discuz_X3.2_SC_UTF8.zip
httpd.conf
httpd.conf  ÅäÖÃÎļþ
master# vim /etc/ansible/roles/httpd/tasks/main.yml
- name: °²×°httpdÏà¹ØÈí¼þ°ü
yum: name=httpd,httpd-devel state=latest

- name: ͬ²½ÅäÖÃÎļþ
copy: src=/etc/ansible/roles/httpd/files/httpd.conf
dest=/etc/httpd/conf/httpd.conf

    notify: restart httpd
_ name: ¿½±´discuzѹËõ°ü
  copy:
src=/etc/ansible/roles/httpd/files/Discuz_X3.2_SC_UTF8.zi
p dest=/tmp/
- name: ½âѹ²¢mvÍøÕ¾Îļþµ½httpd¼ÒĿ¼
  shell: unzip /tmp/Discuz_x3.2_sc_UTF8.zip -d /tmp &>/dev/null && 
mv /tmp/upload/* /var/www/html/ && chown -R apache.apache /var/www/html/
# ÉÏÃæµÄÃüÁîÓеã¶à£¬¿ÉÒÔд³É½Å±¾£¬È»ºóʹÓÃscriptÄ£¿éÀ´µ÷ÓÃÖ´ÐС£

- name: Æô¶¯httpd²¢¿ª»úÆô¶¯
  service£º name=httpd state=started enabled=function

µÚ3²½: ±àдhttpd½ÇÉ«µÄmain.ymlÎļþ

µÚ4²½: ±àдhttpd½ÇÉ«ÀïµÄhandler


master# vim /etc/ansible/roles/httpd/handlers/main.yml
---
- name: restart httpd
  service: name=httpd state=restarted

µÚ5²½: ±àдmysql½ÇÉ«µÄmain.ymlÎļþ

master# vim /etc/ansible/roles/mysql/tasks/main.yml
---
- name: °²×°mariadbÏà¹ØÈí¼þ°ü
yum: name=mariadb-server,mariadb-devel state=latest

- name: Æô¶¯mariadb·þÎñÆ÷²¢ÉèÖÿªÆô×ÔÆô¶¯
  service: name=mariadb srate=started enabled=on

- name:Ö´Ðн¨¿â½Å±¾
  script£º /etc/ansible/roles/mysql/files/create.sh

µÚ6²½: ±àдmysqlµÄ½¨¿â½Å±¾

master# vim /etc/ansible/roles/mysql/files/create.sh

#!/bin/bash

mysql << EOF
create database if not exists discuz default charset=utf8; 
grant all on discuz.* to 'discuz'@'localhost' identified by '123';
flush privileges;
EOF

µÚ7²½: ±àдphp½ÇÉ«µÄmain.ymlÎļþ


master# vim /etc/ansible/roles/php/tasks/main.yml 2 ---
- name: °²×°phpÏà¹ØÈí¼þ°ü
  yum: name=php,php-gd,php-ldap,php-odbc,php-pear,php- xml,php-xmlrpc,
php-mbstring,php-snmp,php-soap,curl,curl- devel,
php-bcmath,php-mysql state=present
  notify: restart httpd

µÚ8²½:±àдlampµÄplaybookÎļþµ÷ÓÃÇ°Ãæ¶¨ÒåºÃµÄÈý¸ö½ÇÉ«

master# vim /etc/ansible/playbook/lamp.yaml
---
- hosts: group1          # ´ú±íÐèÒª°²×°µÄÖ÷»ú×é
  remote_user£ºroot      # Ö´ÐÐÈÎÎñµÄÓû§
  rolse:                 # µ÷ÓÃÈçÏÂ3¸örole£¬Ï൱ÓÚµ÷Óú¯Êý
    - httpd
  - mysql
  - php

µÚ9²½: Ö´ÐÐlampµÄplaybookÎļþ


master# ansible-playbook /etc/ansible/playbook/lamp.yaml

µÚ10²½: ¿ÉÒÔͨ¹ýä¯ÀÀÆ÷·ÃÎÊÊôÓÚgroup1µÄÖ÷»ú½øÐа²×°

Ansible±àÅŲ¿Êðlamp+discuz02

0 ·ÖÏíµ½£º
ºÍÎÒÃÇÔÚÏß½»Ì¸£¡
¡¾ÍøÕ¾µØÍ¼¡¿¡¾sitemap¡¿