Ansible自动化运维工具安装与使用实例
1.准备两台服务器,要确定网络是通的。服务器当然越多越好啦。Ansible的简介和好处我就不多说了。
IP:192.168.139.100
IP:192.168.139.110
2.把192.168.139.100这台服务器当master,110这台服务器做slave。在master服务器上安装ansible
[root@master~]# yum install epel-release -y
[root@master~]# yum install ansible -y
3.添加slave到管理的主机组,将slave的ip添加到hosts下,先简单添加,主机分组后面再谈。
[roo@master~]# vi /etc/ansible/hosts
4.master ssh秘钥配对,不用设置密码,这样会在root下生成.ssh目录,如果设置的了密码,每次执行ansible时,都会提示输入密码。
[root@master~]# ssh-keygen -t rsa
5.将公钥拷贝到slave的.ssh/authorized_keys目录下,实现免密码登录远程管理主机
[root@master~]#ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]
6.完成后,可以测试下
[root@master~]#ansible all -m ping
7.成功返回如下,如果有警告,可在vi /etc/ansible/ansible.cfg将警告改为false。
192.168.139.110 | SUCCESS => {
"changed": false,
"ping": "pong"
}
8.测试成功,说明已经可控制slave,下面介绍几个常用的模块。ansible的选项参数我就不过多介绍了,可自行度娘
9.模块command/shell/raw。。。。。发现返回都是一样。它们的区别就在于command模块不是调用的shell的指令,所以没有bash的环境变量,也不能使用shell的一些操作方式,其他和shell没有区别。
而shell模块调用的是/bin/sh指令执行,raw很多地方和shell类似,更多的地方建议使用shell和command模块。但是如果是使用老版本Python,需要用到raw,又或者是客户端是路由器,因为没有安装python模块,那就需要使用raw模块了。
注意:command模块不能使用 ‘’ | ‘’符,而shell和raw可用
[root@root ansible]# ansible 192.168.139.110 -m command -a 'ls -l /tmp'
[root@root ansible]# ansible 192.168.139.110 -m shell -a 'ls -l /tmp'
[root@root ansible]# ansible 192.168.139.110 -m raw -a 'ls -l /tmp'
10.copy模块 ,src参数指的是本地对象文件或文件夹,dest参数是远程主机存放的位置,mode参数为复制对象设置权限,backup参数文件存在的时候可以选择覆盖之前,将源文件备份.
[roo@master~]#ansible 192.168.139.110 -m copy -a 'src=/tmp/a.playbook dest=/tmp/a.playbook mode=664 backup=yes'
192.168.139.110 | SUCCESS => {
"changed": true,
"checksum": "51e3349a716098db6c1b017be22cacbfb2d735bb",
"dest": "/tmp/a.playbook",
"gid": 0,
"group": "root",
"md5sum": "08817797fef316008f89397ce9ed79a1",
"mode": "0664",
"owner": "root",
"size": 167,
"src": "/root/.ansible/tmp/ansible-tmp-1521703323.39-7112136437252/source",
"state": "file",
"uid": 0
}
11.file模块,设置文件的属性。path参数设置的文件的对象,owner参数设置文件的拥有者,group参数设置文件的组别,mode参数设置文件的权限
[root@master ~]# ansible webserver -m file -a 'path=/tmp/a.playbook owner=user1 group=user1 mode=664'
192.168.139.110 | SUCCESS => {
"changed": true,
"gid": 500,
"group": "user1",
"mode": "0664",
"owner": "user1",
"path": "/tmp/a.playbook",
"size": 167,
"state": "file",
"uid": 500
}
12.user/group模块,添加用户模块,name参数要添加的用户名,group参数用户的属组
[root@master~]#ansible 192.168.139.110 -m user -a "name=user2 group=root"
13.删除刚才添加的用户
[root@master~]#ansible 192.168.139.110 -m user -a "name=user2 state=absent remove=yes"
14.添加组别
[root@master~]#ansible 192.168.139.110 -m group -a "name=user2"
15.删除组别
[root@master~]#ansible 192.168.139.110 -m group -a "name=testgrp01 state=absent"
16.script模块,可以在slave对象运行master脚本
[root@master~]#ansible 192.168.139.110 -m script -a /tmp/b.sh
17.ansible的模块很多,还可以自定义模块。
18.写一个简单的playbook,vi /tmp/hello.playbook
- hosts: 192.168.139.110
tasks:
- name: say hello task
shell: echo "Hello World"
19.执行palybook
[root@master~]#ansible-playbook a.playbook
20.仅供参考
自动化运维之Ansible服务部署详述
自动化运维之Ansible安装部署
本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供用于网络技术学习参考,学习中请遵循相关法律法规!
本文地址: https://v30.fanwenzhu.com/server/jiqiao/7970.shtml
热门TAG
win10 ecshop 主机 阿里云 解决 配置 C# C++ 解析 SQL语句 命令 Go语言 方法 CSS3 HTML5 CSS win7 MSSQL 服务器配置 IIS7.5 IIS7 IIS6 IIS CentOS 7 Linux oracle数据库 oracle phpcms discuz discuz教程最新文章
-
EasyDSS RTMP流媒体服务器运
时间:2021-01-07
-
Linux客户端访问NFS报Permi
时间:2021-01-07
-
MobaXterm中运行脚本出现c
时间:2021-01-07
-
解决启动Nginx出现"'THRE
时间:2020-12-29
-
centeros7的redis-cli命令不生
时间:2020-12-29
-
本地java链接远程服务器
时间:2020-12-29
-
在不重启的情况下为Vmwa
时间:2020-12-28
-
英特尔修复Linux CPU漏洞:
时间:2020-12-28
热门文章
-
4种绕过Linux/Unix命令别名的方法
时间:2020-12-26
-
如何检查你的计算机使用的是UEFI还是BI
时间:2020-12-26
-
在Linux下为X1 Carbon CPU降压
时间:2020-12-26
-
为你的Fedora系统增添发音功能
时间:2020-12-28
-
英特尔修复Linux CPU漏洞:19年前的奔腾3也
时间:2020-12-28
-
使用molly-guard保护你的Linux/Unix机器不会被
时间:2020-12-28
-
解决启动Nginx出现"'THREAD_CONCURRENCY' is d
时间:2020-12-29
-
本地java链接远程服务器Linux上redis出错解
时间:2020-12-29
-
Intel CPU底层漏洞事件完全详解:包括修复
时间:2020-12-28
-
在不重启的情况下为Vmware Linux客户机添加
时间:2020-12-28
