ansible playbook脚本,安装LAMP套件

文章详细描述了如何使用Ansible自动化工具在多台服务器上进行LAMP(Linux,Apache,MySQL,PHP)和LNMP(Linux,Nginx,MySQL,PHP)的分布式安装。涉及的步骤包括关闭防火墙和SELinux,安装相关服务,配置数据库密码,启动服务,以及远程挂载镜像。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

yum 集中式安装lamp

---
- name: LAMP install
  hosts: dbservers
  tasks:
    - name: disable firewalld
      service:
        name: firewalld
        enabled: no
        state: stopped
    - name: disabled selinux
      shell: "sudo sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config"
      shell: "iptables -F"
    - name: install httpd
      yum:
        name: httpd
        state: present
    - name: install mariadb
      yum:
        name: mariadb-server
        state: present
    - name: install php
      yum:
        name: php,php-mysql,php-gd
        state: present
    - name: start mariadb
      service:
        name: mariadb
        enabled: yes
        state: started
    - name: new db passwd
      shell: 'mysqladmin -u root password "123456"'
    - name: start http
      service:
        name: httpd
        enabled: yes
        state: started
    - name: copy index.php
      copy: src=index.php dest=/var/www/html/index.php
    - name: reboot
      reboot:
        reboot_timeout: 60
   
...        

 网页验证

分布式安装lamp

---
- name: this is deploy lamp service by yum install
  remote_user: root
  hosts: all
  gather_facts: false
  tasks:
   - name: stop firewalld
     service: name=firewalld state=stopped
   - name: stop seliunx
     command: '/usr/sbin/setenforce 0'
     ignore_errors: true
  
   - name: cope nginx.repo file
     copy: src=/opt/nginx.repo dest=/etc/yum.repos.d
     when: inventory_hostname == "192.168.50.25"
   - name: yum install nginx service
     yum: name=nginx state=latest
     when: inventory_hostname  == "192.168.50.25"
   - name: start nginx service
     service: name=nginx state=started enabled=yes
     when: inventory_hostname == "192.168.50.25"  
 


   - name: yum install php service
     yum: name=php state=latest
     when: inventory_hostname  == "192.168.50.26"
   - name: copy test file
     copy: src=/opt/index.php dest=/var/www/html
     when: inventory_hostname  == "192.168.50.26"


   - name: yum install mariadb state=latest
     yum: name=mariadb
     when: inventory_hostname == "192.168.50.27"
   - name: yum install mariadb-server
     yum: name=mariadb-server state=latest
     when: inventory_hostname == "192.168.50.27"
   - name: start mariadb service
     service: name=mariadb state=started enabled=yes
     when: inventory_hostname == "192.168.50.27"

   - name: modify nginx.conf to connect php with nginx
     copy: src=/opt/default.conf  dest=/etc/nginx/conf.d/default.conf
     when: inventory_hostname == "192.168.50.25"
   - name: restart nginx
     service: name=nginx state=restarted
     when: inventory_hostname == "192.168.50.25"
   - name: new mariadb passwd
     shell: 'mysqlaadim -u root password "abc123"'
     when: inventory_hostname == "192.168.50.25"

远程挂载镜像

---
- name: this is test for mount
  hosts: webservers
  remote_user: root
  tasks:
   - name: mount test
     mount:
      src: /dev/sr0
      path: /mnt
      state: mounted
      fstype: 'iso9660'
 

三:通过role分布式YUM安装lnmp

 

建立role的文件夹

mkdir /etc/ansible/roles/httpd/{files,templates,tasks,handlers,vars,defaults,meta} -p
mkdir /etc/ansible/roles/mysql/{files,templates,tasks,handlers,vars,defaults,meta} -p
mkdir /etc/ansible/roles/php/{files,templates,tasks,handlers,vars,defaults,meta} -p

touch /etc/ansible/roles/httpd/{defaults,vars,tasks,meta,handlers}/main.yml
touch /etc/ansible/roles/mysql/{defaults,vars,tasks,meta,handlers}/main.yml
touch /etc/ansible/roles/php/{defaults,vars,tasks,meta,handlers}/main.yml

安装nginx 服务

 

 

 

 

 安装php服务

 

 准备文件

 

 

安装mysql服务

 vim site.yml

 

运行剧本

ansible-playbook site.yum

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值