运维自动化工具(ansible、puppet、salt)

1.日常运维要做的事:

1.1 软件安装  --依赖 漏洞 升级

1.2 服务的配置  --架构搭建   负载均衡   高可用

1.3 运行脚本

1.4 升级 --版本发布--  --持续集成

1.5 备份

1.6 告警

2.ansible、puppet和salt的区别

优点缺点
ansible精简和快速,不需要单独安装客户端,SSH相当于客户端

依赖大量python模块来实现批量管理,较难扩展

puppet

三者中功能最全面安装部署较其他复杂
salt采用yaml格式编写文件比较简单,可在客户端执行命令扩展能力极强产品不稳定,缺乏生成深度报告的能力

2.ansible的组成:

2.1 host invemtory  : 定义客户机

2.2 playbook :剧本,自动化执行脚本

2.3 module : 模块  实现一个个功能的程序

2.4 plugin : 插件 实现一些额外的小功能

2.5 ansible用于执行主程序,ansible-playbook执行playbook的任务,ansible-doc获得各模块的帮助信息

3.asible的安装和配置

ansible的安装需要先现在epel-release ,这是一个资源库,集成了大量的linux软件包。

3.1 yum install epel-release -y

3.2 yum install ansible -y

3.3 ansible的配置文件:

/etc/ansible/asible.cfg  : 此文件定义了主机清单路径,连接清单中主机的方式等等,可以重新定义hosts的地址,默认是/etc/ansible/hosts

/etc/ansible/hosts :此文件存放了主机清单,如果主机的ssh服务端口号不是默认的22就要指明端口号

(配置你要通过ansible操作的主机,前提是对方主机一定是可联通的,必须要打开)

4. ansible的使用 :
HOST-PATTERN  匹配主机模式

-m  模块名

-a  模块执行的参数

-f 生成几个子执行程序

-u username 某主机的用户名

-c connection 连接方式

4.1 演示:指定ansible管理的所有主机都在默认目录(user的家目录)创建一个名叫csdn的文件夹

5.ansible的模块

5.1copy模块,复制ansible主机的文件到目标主机

ansible all -m copy -a "src=/lianxi/ansible-copy dest=/lianxi/ansible mode=777 owner=sanchuang group=sanchuang"

all:指定ansible/hosts的所有主机执行接下来的命令

src:指定源文件路径

dest:指定目标主机的文件路径

owner:指定属主

group:指定属组

mode:指定权限

5.2fetch模块 拉取目标主机的文件到ansible主机

ansible webser -m fetch -a "src=/etc/hostname dest=/lianxi mode=644"

5.3 command模块:在远程主机上执行命令,非键值对显示,不进行shell解析(不会解析它的管道符号  会认为ifconfig|grep 是一个命令)

ansible all -m command -a "ifconfig”

5.4shell模块:和command很类似,但是可以解析管道符之类的功能

ansible all -m shell -a "ifconfig|grep inet"

5.5 file模块:设置文件属性(创建文件夹)

path :目标路径

state:

--directory :创建目录

--absent:删除文件和目录

--touch :新建空文件

--hard :硬链接

--soft:软连接

group

owner

mode

例子:ansible all -m file -a "path=/tmp/sanchuang state=directory"

5.5cron模块: 生成计划任务

* * * * * :分、时、日、月、周

state:

--present:生成

--absent:删除

生成计划任务:ansible all -m cron -a "minute=*/3 job='date >>/tmp/time.txt' name=date_test  state=present"

删除计划任务: ansible 192.168.0.48 -m cron -a "name=date_test  state=absent"

5.7yum模块:安装软件包的模块

enablerepo:启用repo模块

disablerepo:禁用repo模块

state:

--installed :安装

--present:安装

--latest:安装

--absent:删除

--removed:删除

name :名字

ansible all -m yum -a "name=wget state=installed"

 ansible all -m yum -a "name=wget state=absent"

(wget是一个下载文件的工具)

5.8service模块:服务管理模块

enabled:开机启动

runlevel:启动级别

state:

--started(启动)

--stopped(关闭)

--restarted(重启)

--reloaded(重新加载)

安装文件传输服务vsftpd:ansible all -m yum -a "name=vsftpd state=installed"

5.9script模块:把本地的脚本服务传递到远端执行,

ansible all -m script -a "/root/test.sh"

6.使用ansible部署web服务

6.1安装nginx

6.2修改配置文件 /etc/nginx/conf.d/sc.conf

server {
        listen       8080 ;
        server_name  www.sc.com;
        root         /opt/dist;
        access_log  /var/log/nginx/sc_access.log  main;
        location / {
        }
        location =/api {
        }
}

6.3传递index.html到/opt/dist目录下

6.4启动服务,测试是否能访问

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值