当前位置:首页 > 技术文章 > 正文内容

跨平台自动化部署工具 Ansible 简单入门

arlanguage4个月前 (01-15)技术文章28

一、简介

Ansible是一个自动化统一配置管理工具,有如下特点:

  1. 远程执行
  2. 批量配置软件服务
  3. 事件驱动
  4. 便于二次开发
  5. 跨平台、跨系统

官网地址:
https://www.ansible.com

二、安装Ansible

系统需求:

  • 一个控制节点,支持Python2.7+或Python3.5+的系统,如: Red Hat, Debian, CentOS, macOS, any of the BSDs 等。
  • 受控端,通过ssh/sftp(也可以使用scp)与控制节点连接,同样需要支持Python2.7+或Python3.5+
  • 如果受控端启用了SELinux,那需要安装libselinux-python
# 安装epel源
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
# 安装ansible
yum install ansible -y
ansible --version

三、Inventory资产清单

Inventory通过配置文件来记录被控制节点,清单默认位置:
/etc/ansible/hosts。
命令行可以通过-i来指定hosts的位置:

ansible -i ./hosts

Inventory支持多种格式,如:

# This is the default ansible 'hosts' file.
#
# It should live in /etc/ansible/hosts
#
#   - Comments begin with the '#' character
#   - Blank lines are ignored
#   - Groups of hosts are delimited by [header] elements
#   - You can enter hostnames or ip addresses
#   - A hostname/ip can be a member of multiple groups

# Ex 1: Ungrouped hosts, specify before any group headers.
# 未分组主机

## green.example.com
## blue.example.com
## 192.168.100.1
## 192.168.100.10

# Ex 2: A collection of hosts belonging to the 'webservers' group
#  分组到 webservers

## [webservers]
## alpha.example.org
## beta.example.org
## 192.168.1.100
## 192.168.1.110

# If you have multiple hosts following a pattern you can specify
# them like this:
# 使用通配符

## www[001:006].example.com

# Ex 3: A collection of database servers in the 'dbservers' group

## [dbservers]
## 
## db01.intranet.mydomain.net
## db02.intranet.mydomain.net
## 10.25.1.56
## 10.25.1.57

# Here's another example of host ranges, this time there are no
# leading 0s:
# 一个主机段

## db-[99:101]-node.example.com

可以给主机定义别名、指定端口号,如:

[webs]
web01 ansible_ssh_host=192.168.1.3 ansible_ssh_port=22

五、 模块

ansible使用模块来完成安装软件、复制软件等大部分任务。

1. ping

ansible webs -m ping

ping所有主机

ansible all -m ping

2. command来执行简短指令

ansible all -m command -a "echo Heelo World"

3. 使用shell模块

ansible webs -m shell -a 'ls /home'

其它可选参数:

-b - “成为”,在运行命令时告诉可以成为另一个用户。
--become-user=root - 以用户“root”运行以下命令(例如,使用命令使用“sudo”)。我们可以在此定义任何现有的用户。
-a 用于将任何参数传递给定义的模块 -m

4. Debian系操作系统使用apt模块

ansible -i ./hosts local --connection=local -b --become-user=root \
    -m apt -a 'name=nginx state=installed update_cache=true'

扫描二维码推送至手机访问。

版权声明:本文由AR编程网发布,如需转载请注明出处。

本文链接:http://www.arlanguage.com/post/882.html

标签: nginx别名
分享给朋友:

“跨平台自动化部署工具 Ansible 简单入门” 的相关文章

如何优化Nginx性能?

优化Nginx性能涉及多个方面,包括配置优化、硬件资源、软件选择和系统监控等。以下是一些常见的Nginx性能优化技巧,以及一些示例代码和配置:优化Nginx配置调整超时时间:调整客户端和服务器之间的超时时间,例如client_header_timeout、client_body_timeout等。设...

nginx出现大量499响应码怎么办?

一、问题现象监控发现Nginx服务日志中出现较多的499状态码,499状态码在Nginx中代表的是客户端在服务端返回之前主动断开了连接,由于客户端设置的超时时间为2s,故到达2s未收到服务端响应客户端主动断开了连接造成了499响应码。二、可能的故障点服务器的问题,例如CPU使用率高,队列堵塞,导致无...

网站nginx配置限制单个IP访问频率,预防DDOS恶意攻击

一、简介对于网站来说,尤其是流量较大出名的网站,经常遇到攻击,如DDOS攻击等,虽然有些第三方,如Cloudflare可以挡,但对于动态网站PHP来说,只能挡一部分。这时候需要对于单个IP恶意攻击做出限流。nginx的两个模块可以限流。nginx两个限流模块:连接频率限制,ngx_http_lim...

php手把手教你做网站(二十四)jquery ajax上传大的附件

上传大的附件分为两种情况,可以改变服务器配置;不能改变配置;第2种使用分片上传优势:可以突破服务器上传大小的限制,可以web存储上传到哪一块了,在浏览器关闭或者刷新的情况下可以断点续传;劣势:上传速度慢,在我本地电脑测试,200M的文件,改变配置按照正常方式上传大约需要12到15秒,但是使用第2种分...

Linux进程管理工具 Supervisor详解

Supervisor安装与配置(linux/unix进程管理工具) Supervisor(http://supervisord.org)是用Python开发的一个client/server服务,是Linux/Unix系统下的一个进程管理工具,不支持Windows系统。它可以很方便的监听、启动、停止、...

Nuxt.js从0到1之入门教程

题外话:近来想把网站做下更新,从框架到内容的更新,但又不想放弃SEO的优势,日常工作用到vue.js在SEO方面劣势较多,果断选择了Nuxt.js,苦于国内文章抄袭的非常严重 如某n 某书,最终在稀土找到一篇像样的文章,以头条为平台记录网站改版全过程。此文章建议在PC端查看,涉及到代码部分,移动端查...