使用 SaltStack 在 Windows 服务器上发布 Web 应用 - Part 1

由于公司业务发生变化,之前单纯的使用 SVN 仓库钩子发布、更新 IIS 站点无法满足新的需求。对比 Ansible、Puppet、SaltStack 之后选择了 SaltStack 作为运维工具。

选择 SaltStack 的原因如下:

  • Puppet 使用 Ruby,而 Ansible 和 SaltStack 使用 Python。人生苦短,我选 Python, Pass。
  • Ansible 是 agent-less 方案,通过 WinRM(Windows Remote Management) 来支持 Windows 管理。恩,稍微看了下 WinRM 的认证方案,太麻烦,Pass。

由于篇幅较长,所以分为两部分,第一部分是完成部署 SaltStack,实现使用命令行来发布更新。第二部分使用 Jenkinssalt-api,实现自动持续集成。

[阅读全文]

在 CentOS 上使用 Docker 部署个人博客和 Git 仓库

从开始自己搭建博客已经过去 3 年了,最开始是在 FreeBSD 上运行的 WordPress,由于配置低,经常因为数据库挂掉而无法访问。几经折腾,先是迁移到 Ghost,然后是 HEXO。 虽然用过不少笨方法解决问题,好在也获取了不少经验与知识。

随着 Docker 的流行,感觉不得不放弃 FreeBSD 了。虽然早就迁移到 CentOS,并用 Docker 完成了部署,这里补充一下记录,算是知识的整理与回顾。

[阅读全文]
HEXO  Docker  Linux 

加盐密码哈希:如何正确使用

本文转载自 : http://blog.coding4love.net/archives/127 由伯乐在线 - 蒋生武 翻译

译文原文地址:https://crackstation.net/hashing-security.htm

如果你是Web开发者,你很可能需要开发一个用户账户系统。这个系统最重要的方面,就是怎样保护用户的密码。存放帐号的数据库经常成为入侵的目标,所以你必须做点什么来保护密码,以防网站被攻破时发生危险。最好的办法就是对密码进行加盐哈希,这篇文章将介绍它是如何做到这点。

在对密码进行哈希加密的问题上,人们有许多争论和误解,这大概是由于网络上广泛的误传吧。密码哈希是一件非常简单的事情,但是依然有很多人理解错误了。本文阐述的并不是进行密码哈希唯一正确的方法,但是会告诉你为什么这样是正确的。

[阅读全文]

在 Nginx 与 IIS 上初试 Let’s Encrypt 证书部署

参考资料

SSL/TLS协议运行机制的概述 HTTPS工作原理 Let’s Encrypt 给网站加 HTTPS 完全指南 使用 LetsEncrypt.sh + Nginx 实现SSL证书自动签发/续签

工作原理

Let’s Encrypt 颁发的证书是 DV 证书(域名验证型 DV SSL证书/Domain Validation SSL Certificate),简单来说就是 Let’s Encrypt 将以前的人工参与的认证工作实现了自动化。

在官方文档中有提到域名验证的方式有两种方式:

  • Provisioning a DNS record under example.com

通过 example.com 的 DNS 记录来认证,使用这种方式做到自动化需要 DNS 解析平台提供相应的 API 接口。

访问域名网站的一个指定 URI 下的 http 资源来做验证,关键是在如何让这个指定的 URI 可以正常访问。

具体工作原理请查阅官方文档

注:Let’s Encrypt 的证书有效期为 90 天。不同类型的证书在功能上是相同的,只是 CA 机构的背书信任”价值“不同。

[阅读全文]
Nginx  HTTPS  IIS 

ANT 实践总结

项目中使用了 ANT 脚本来实现持续集成,使用过程中遇到了一些问题,这里做一下记录。

[阅读全文]
ANT 

使用 FitNesse 测试 SQL Server 数据库

FitNesse

介绍

FitNesse is a web server, a wiki and an automated testing tool for software. It is based on Ward Cunningham’s Framework for Integrated Test and is designed to support acceptance testing rather than unit testing in that it facilitates detailed readable description of system function.

FitNesse allows users of a developed system to enter specially formatted input (its format is accessible to non-programmers). This input is interpreted and tests are created automatically. These tests are then executed by the system and output is returned to the user. The advantage of this approach is very fast feedback from users. The developer of the system to be tested needs to provide some support (classes named “fixtures”, conforming to certain conventions).

FitNesse is written in Java (by Robert C. Martin and others). The program first supported only Java, but versions for several other languages have been added over time (C++, Python, Ruby, Delphi, C#, etc.).

[阅读全文]