SaltStack的salt-ssh使用及LAMP状态设计部署(五)
一、salt-ssh的使用
官方文档:https://docs.saltstack.com/en/2016.11/topics/ssh/index.html
(1)安装salt-ssh
[root@linux-node1 ~]# yum install -y salt-ssh (2)配置salt-ssh
[root@linux-node1 ~]# vim /etc/salt/roster
linux-node1:
host: 10.0.0.11
user: root
passwd: qwe123
linux-node2:
host: 10.0.0.12
user: root
passwd: qwe123 (3)使用ssh远程执行
[root@7mini-node1 ~]# salt-ssh '*' -r 'uptime'
7mini-node2:
----------
retcode:
0
stderr:
stdout:
root@10.0.0.12's password:
14:07:19 up 14 days, 8:41, 2 users, load average: 0.04, 0.08, 0.07
7mini-node1:
----------
retcode:
0
stderr:
stdout:
root@10.0.0.11's password:
14:07:20 up 23 days, 8:13, 2 users, load average: 2.86, 0.81, 0.34
二.配置管理
1)SLS:salt state举例安装apache
[root@7mini-node1 ~]# vim /srv/salt/base/web/apache.sls
apache:
pkg.installed:
- name: httpd
service.running:
- name: httpd
file.managed:
- name: /etc/httpd/conf/httpd.conf
- source: salt://apache/files/httpd.conf
- user: root
- group: root
- mode: 644 解释说明:
apache:id声明,在所有环境(base、prod)下全局唯一
pkg:状态模块
.:引用关系
installed:模块中的方法
::代表层级关系
name:可以理解为参数,后面跟的是参数值,id就是name
file.managed:文件管理模块,必须要有source指定文件的来源路径
source:文件的来源路径,salt://代表着环境的根路径,这的根路径为:/srv/salt/base/
user、group、mode:分别指定文件的所属者,所属组和权限 以上的文件还可以使用分id的写法:
apache-install:
pkg.installed:
- name: httpd apache-service:
service.running:
- name: httpd apache-config:
file.managed:
- name: /etc/httpd/conf/httpd.conf
- source: salt://apache/files/httpd.conf
- user: root
- group: root
- mode: 644 存在指定多个配置文件,还可以使用一下写法:(不适用name作为参数传递时,id就是最上面的参数)
/etc/httpd/conf/httpd.conf:
file.managed:
- source: salt://apache/files/httpd.conf
- user: root
- group: root
- mode: 644
/etc/httpd/conf/php.conf:
file.managed:
- source: salt://apache/files/php.conf
- user: root
- group: root
- mode: 644
2) LAMP的状态设计与实现部署
设计需求分析
1、设计分析
| 名称 | 软件包 | 配置文件 | 服务 |
|---|---|---|---|
| 使用模块 | pkg | file | service |
| LAMP | httpd、php、mariadb、mariadb-server、php-mysql、php-pdo、php-cli | /etc/httpd/conf/httpd.conf、/etc/php.ini、/etc/my.cnf | httpd、mysqld |
2、Aapche的状态配置
[root@7mini-node1 prod]# pwd
/srv/salt/prod
[root@7mini-node1 prod]# mkdir apache php mysql
[root@7mini-node1 prod]# tree
.
├── apache
├── mysql
└── php 3 directories, 0 files [root@7mini-node1 prod]# cd apache/
[root@7mini-node1 apache]# vim apache.sls #编写apache的状态模块
apache-install:
pkg.installed:
- name: httpd apache-config:
file.managed:
- name: /etc/httpd/conf/httpd.conf
- source: salt://apache/files/httpd.conf #salt://代表着环境的根路径,根路径为/srv/salt/prod
- user: root
- group: root
- mode: 644 apache-service:
service.running:
- name: httpd
- enable: True
[root@7mini-node1 apache]# mkdir files #创建source目录
[root@7mini-node1 apache]# cd files/
[root@7mini-node1 files]# cp /etc/httpd/conf/httpd.conf .
[root@7mini-node1 apache]# tree
.
├── apache.sls
└── files
└── httpd.conf 1 directory, 2 files
[root@7mini-node1 apache]# salt '7mini-node1' state.sls apache.apache saltenv=prod #执行正常无报错,为正常
3、php的状态配置
[root@7mini-node1 prod]# cd php
[root@7mini-node1 php]# mkdir files
[root@7mini-node1 php]# vim init.sls
php-install:
pkg.installed:
- pkgs:
- php
- php-pdo
- php-mysql php-config:
file.managed:
- name: /etc/php.ini
- source: salt://php/files/php.ini
- user: root
- group: root
- mode: 644
[root@7mini-node1 php]# cp /etc/php.ini files/
[root@7mini-node1 php]# tree
.
├── files
│ └── php.ini
└── init.sls 1 directory, 2 files
[root@7mini-node1 apache]# salt '7mini-node1' state.sls php.init saltenv=prod
4、mysql的状态配置
[root@7mini-node1 prod]# cd mysql/
[root@7mini-node1 mysql]# vim init.sls
mysql-install:
pkg.installed:
- pkgs:
- mariadb
- mariadb-server mysql-config:
file.managed:
- name: /etc/my.cnf
- source: salt://mysql/files/my.cnf
- user: root
- gourp: root
- mode: 644 mysql-service:
service.running:
- name: mariadb-server
- enable: True
[root@7mini-node1 mysql]# mkdir files
[root@7mini-node1 mysql]# cp /etc/my.cnf files/
[root@7mini-node1 prod]# tree
.
├── apache
│ ├── files
│ │ └── httpd.conf
│ └── init.sls
├── mysql
│ ├── files
│ │ └── my.cnf
│ └── init.sls
└── php
├── files
│ └── php.ini
└── init.sls
[root@linux-node1 prod]# salt '7mini-node1' state.sls php.init saltenv=prod #执行无报错表示成功
5、写入top file,执行高级状态
[root@7mini-node1 base]# pwd
/srv/salt/base
[root@7mini-node1 base]# vim top.sls
prod:
'7mini-node1.example.com':
- apache.init
- php.init
- mysql.init
[root@linux-node1 base]# salt '7mini-node1*' state.highstate #执行无报错表示成功 测试7mini-node2是否能执行成功
[root@7mini-node1 ~]# salt '7mini-node2' state.highstate
SaltStack的salt-ssh使用及LAMP状态设计部署(五)的更多相关文章
- SaltStack入门篇(五)之salt-ssh的使用以及LAMP状态设计部署
1.salt-ssh的使用 官方文档:https://docs.saltstack.com/en/2016.11/topics/ssh/index.html ()安装salt-ssh [root@li ...
- SaltStack配置管理-LAMP状态设计
上一篇:SaltStack之Salt-ssh 配置文件模板 apache: pkg.installed: - name: httpd service.running: - name: httpd /e ...
- 009(1)-saltstack之salt-ssh的使用及配置管理LAMP状态的实现
1 salt-ssh的使用 1. 安装salt-ssh[root@slave1 .ssh]# yum install -y salt-ssh 2. 配置salt-ssh # Sample salt-s ...
- 009-saltstack之salt-ssh的使用及配置管理LAMP状态的实现
1.salt-ssh的使用 官方文档:https://docs.saltstack.com/en/2016.11/topics/ssh/index.html (1)安装salt-ssh [root@l ...
- saltstack通过salt.client执行命令(转)
利用saltstack的salt.client模块可以在python的命令行下或者python脚本里执行相应的salt命令 master端想要执行类似 salt '*' cmd.run 'uptime ...
- saltstack 使用salt ‘*’ test.ping 报错Minion did not return(转)
原文地址:http://blog.51cto.com/4634721/2093019 saltstack 使用salt ‘*’ test.ping 报错Minion did not return. [ ...
- SaltStack 的基本概念与工作原理 架构设计
随着云计算技术的快速普及与发展,越来越多的企业开始学习和搭建自己的云平台代替传统的 IT 交付模式,企业的 IT 环境也随之越来越复杂,常规的运维方法与技术已经无法满足现在云环境中系统的配置与变更.基 ...
- LAMP 搭建wordpress部署教程贴.
LAMP 搭建wordpress部署教程贴.这是一篇主要将LAMP,并且通过wordpress来进行验证,演示.如何去部署PHP CMS很多新手看到LAMP就很很头大,觉得很难搞,编译安装,搞了好几天 ...
- 在lamp上简单部署应用程序
前言:上文中,说到了lamp的基本原理,apache与php的三种交互模式,php与mysql(mariadb)的交互,一次完整lamp的请求. LAMP简单的部署之后,便能够简单的搭建自己的网站. ...
随机推荐
- 「Linux」centos7安装python
•安装python3.6可能使用的依赖 yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqli ...
- == 和 equals,equals 与 hashcode,HashSet 和 HashMap,HashMap 和 Hashtable
一:== 和 equals == 比较引用的地址equals 比较引用的内容 (Object 类本身除外) String obj1 = new String("xyz"); Str ...
- js_beautifier && css_beautifier for emeditor
// // Unpacker for Dean Edward's p.a.c.k.e.r, a part of javascript beautifier // written by Einar Li ...
- About configuration center of Apollo
A comparison among different configuration management tools Use of Apollo configuration management p ...
- WAMP允许外部访问的修改方法
apache配置文件httpd.conf里的 "Require local"改" Require all granted"
- 网易android开发面试题及心得
前几天面试网易android开发,总体感觉问题难度一般.怪我自己没有好好梳理知识,尤其是基础,后面就没消息了... 笔试: 1.描述Activity 生命周期 2.什么是ANR,如何规避? 3.描述a ...
- Battery Charging Specification 1.2 中文详解 来源:www.chengxuyuans.com
1. Introduction 1.1 Scope 规范定义了设备通过USB端口充电的检测.控制和报告机制,这些机制是USB2.0规范的扩展,用于专用 充电器(DCP).主机(SDP).hub(SDP ...
- elk系列1之入门安装与基本操作【转】
preface 我们每天都要查看服务器的日志,一方面是为了开发的同事翻找日志,另一方面是巡检服务器查看日志,而随着服务器数量以及越来越多的业务上线,日志越来越多,人肉运维相当痛苦了,此时,参考现在非常 ...
- julia 1.0如何使用pkg
输入]进入pkg模式 add 加包名即可安装,如 add Cxx
- python魔法函数__dict__和__getattr__的妙用
python魔法函数__dict__和__getattr__的妙用 __dict__ __dict__是用来存储对象属性的一个字典,其键为属性名,值为属性的值. 既然__dict__是个字典那么我们就 ...