salt实现lamp自动化部署

简介:

三个文件夹:

pkg 安装软件包

file  管理配置文件

service   服务管理


思路: lamp需要安装的软件包有  httpd, php, mysql, mysql-server, php-mysql, php-pdo


cd  /srv/salt/dev/


mkdir   /srv/salt/dev/files/      ##放配置文件


vim  /srv/salt/dev/lamp.sls 

lamp配置文件如下:

lamp-pkg-install:

  pkg.installed:

    - names:

      - php

      - mysql

      - php-cli

      - php-common

      - php-mysql

      - php-pdo

apache-service:

  pkg.installed:

    - name: httpd

  file.managed:

    - name: /etc/httpd/conf/httpd.conf

    - source: salt://files/httpd.conf

    - user: root

    - group: root

    - mode: 644

    - require:         

      - pkg: apache-service

  service.running:

    - name: httpd

    - enable: True

    - reload: True

    - watch:                      

      - file: apache-service

mysql-service:

  pkg.installed:

    - name: mysql-server

    - require_in:    

      - file: mysql-service

  file.managed:

    - name: /etc/my.cnf

    - source: salt://files/my.cnf

    - user: root

    - group: root

    - mode: 644

    - watch_in:    

      - service: mysql-service

  service.running:

    - name: mysqld

    - enable: True

vim  /srv/salt/top.sls    

dev:

  'web2.coohx.com':

    - lamp

执行: 

 salt 'web2*' state.highstate

[root@web1 salt]# salt 'web2*' state.highstate

web2.coohx.com:

....

...

----------

          ID: apache-service

    Function: file.managed

        Name: /etc/httpd/conf/httpd.conf

      Result: True

     Comment: File /etc/httpd/conf/httpd.conf updated

     Started: 19:22:16.063742

    Duration: 56.123 ms

     Changes:

              ----------

              diff:

                  ---

                  +++

                  @@ -273,7 +273,7 @@

                   # You will have to access it by its address anyway, and this will make

                   # redirections work in a sensible way.

                   #

                  -#ServerName www.example.com:80

                  +ServerName www.coohx.com:80

                   #

                   # UseCanonicalName: Determines how Apache constructs self-referencing

----------

          ID: apache-service

    Function: service.running

        Name: httpd

      Result: True

     Comment: Service reloaded

     Started: 19:22:16.189186

    Duration: 267.497 ms

     Changes:

              ----------

              httpd:

                  True

----------

          ID: mysql-service

    Function: pkg.installed

        Name: mysql-server

      Result: True

     Comment: Package mysql-server is already installed.

     Started: 19:22:16.457774

    Duration: 4.411 ms

     Changes:

----------

          ID: mysql-service

    Function: file.managed

        Name: /etc/my.cnf

      Result: True

     Comment: File /etc/my.cnf updated

     Started: 19:22:16.463750

    Duration: 25.095 ms

     Changes:

              ----------

              diff:

                  ---

                  +++

                  @@ -13,6 +13,8 @@

                   # If you want to know which options a program supports, run the program

                   # with the "--help" option.

                  +#web2.coohx.com

                  +

                   # The following options will be passed to all MySQL clients

                   [client]

                   #password    = your_password

                  @@ -24,7 +26,7 @@

                   # The MySQL server

                   [mysqld]

                   port         = 3306

                  -socket               = /var/lib/mysql/mysql.sock

                  +socket               = /tmp/mysql.sock

                   character_set_server = utf8

                   skip-locking

                   key_buffer_size = 256M

----------

          ID: mysql-service

    Function: service.running

        Name: mysqld

      Result: False

     Comment: Failed to restart the service

     Started: 19:22:16.548901

    Duration: 2260.008 ms

     Changes:

              ----------

              mysqld:

                  False

Summary

-------------

Succeeded: 11 (changed=4)

Failed:     1

-------------

Total states run:     12













本文转自铁骑传说51CTO博客,原文链接: http://blog.51cto.com/ybzbfs/1954937,如需转载请自行联系原作者




相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
机器学习/深度学习 调度
详解 Diffusion (扩散) 模型
详解 Diffusion (扩散) 模型
1089 0
|
人工智能 文字识别 监控
将人工智能融入多媒体 助力视频产业加速——阿里云视频AI全能力解读
结合人工智能视频理解流程和用户的需求场景,我们将视频AI的功能分成四个大部分,视频智能审核、视频内容理解、视频智能编辑、视频版权保护。其中视频审核功能包括视频鉴黄、暴恐涉政识别、广告二维码识别、无意义直播识别等,利用识别能力将网络上没营养和不健康的视频内容进行排查和处理;视频理解功能包括视频分类、标签,人物识别、语音识别,同时也包括对视频中的文字进行识别(OCR);视频编辑层面可以实现视频首图、视频摘要、视频highlight的生成,同时支持新闻拆条;关于视频版权,支持视频相似性、同源视频检索和音视频指纹等功能。
17787 0
将人工智能融入多媒体 助力视频产业加速——阿里云视频AI全能力解读
|
11月前
|
Linux Docker 容器
Linux 中停止 Docker 服务报 warning 导致无法彻底停止问题如何解决?
在 Linux 系统中,停止 Docker 服务时遇到警告无法彻底停止的问题,可以通过系统管理工具停止服务、强制终止相关进程、检查系统资源和依赖关系、以及重置 Docker 环境来解决。通过以上步骤,能够有效地排查和解决 Docker 服务停止不彻底的问题,确保系统的稳定运行。
813 19
|
缓存 网络协议 安全
【计算巢】DNS 解析过程详解:域名如何转换为 IP 地址
【5月更文挑战第31天】DNS(域名系统)将人类可读的域名转换为IP地址,涉及本地DNS缓存、层次化DNS服务器系统,包括根DNS、顶级域名DNS和权威DNS。当查询域名时,通过DNS服务器间的交互找到对应IP并返回给浏览器。Python示例展示了DNS查询过程。尽管DNS面临安全挑战,如欺骗和缓存中毒,采取安全措施可确保其稳定性和安全性。它是互联网的重要基础,连接域名与IP,支持便捷的网络访问。
623 0
|
人工智能 缓存 安全
阿里云服务器实例规格性能参考:从五代到八代及经济型e与通用算力型u1
阿里云不断推出新一代的云服务器实例规格,以满足不同用户的多样化需求。本文将介绍阿里云服务器从五代到八代的实例规格,以及经济型e和通用算力型u1这两种热门实例规格,帮助用户更好地选择适合自己的云服务器。
阿里云服务器实例规格性能参考:从五代到八代及经济型e与通用算力型u1
|
存储 JavaScript 前端开发
ShareDB:构建实时应用从未如此简单
ShareDB:构建实时应用从未如此简单
552 0
|
存储 Linux Windows
在Linux中,如何查看linux中内存使用率最高的进程?
在Linux中,如何查看linux中内存使用率最高的进程?
|
小程序
【微信小程序】英文字母不换行问题 flex布局字符超出宽度折行问题:设置了word-break: break-all;和flex: 1;冲突flex不生效问题
【微信小程序】英文字母不换行问题 flex布局字符超出宽度折行问题:设置了word-break: break-all;和flex: 1;冲突flex不生效问题
531 1
|
存储 数据处理 C++
内存 vs 硬盘:固态硬盘代替内存可以工作吗?
内存 vs 硬盘:固态硬盘代替内存可以工作吗?
525 2
|
存储 数据安全/隐私保护 开发者
app上架应用市场需要什么条件
app上架应用市场需要什么条件