关于ansbile
YAML语法规则
规则一:缩进(一个缩进两空格,注意一定不用tab)
规则二:冒号(每个冒号后一定要有空格)
规则三:短横线 - (短横线后面要空格)
编写案例
ansible-playbook --syntax-check cron.yml #剧本检查语法方法
ansible-playbook -C cron.yml #-C模拟执行剧本
ansible-playbook cron.yml #执行剧本
ansible基于密钥管理
vim /etc/ansible/hosts
... 在文件最后添加 ...
[opop]
172.16.1.5 ansible_ssh_user=root ansible_ssh_pass=123456
172.16.1.6 ansible_ssh_user=root ansible_ssh_pass=123456
172.16.1.7 ansible_ssh_user=root ansible_ssh_pass=123456
ansible语法
注:该脚本中的变量不是标准的,请注意.....
该文档中是2台机器做的实验(都是CensOS7.4.1708)
192.168.1.201
192.168.1.202
vim ~/ansible.sh
#!/bin/bash
read -p "对端用户名(尽可能为同一个用户): " User
read -p "对端IP(多个以空格隔开): " D_IP
yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
yum -y install ansible python-pip expect
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
for i in $D_IP;do
/usr/bin/expect <<-EOF
set timeout 10
spawn ssh-copy-id $User@$i
expect {
"\(yes/no\)" { send "yes\r"; exp_continue }
"*password:" { send "aaaaaa\r" }
}
expect eof
EOF
done
注:实验中的6个a是所有机器的root对应的密码
执行脚本:
sh ~/ansible.sh
测试:
简单的Playbook:
卸载:
[root@kvm2 ~]# ansible all -m shell -a "yum -y remove tree"
第二种传公钥的方式(适合批量)
#!/bin/bash
read -p "对端用户名(尽可能为同一个用户): " User
read -p "对端IP(多个以空格隔开): " D_IP
yum -y install sshpass
for i in $D_IP;do
sshpass -p "aaaaaa" ssh-copy-id -o StrictHostKeyChecking=no $User@$i #批量发送公钥
# sshpass -p "aaaaaa" scp /etc/passwd $User@$i:~ #上传文件
# sshpass -p "aaaaaa" ssh $Usert@$i 'df -h' #远程执行命令
# sshpass -p "aaaaaa" scp $User@$i:~/opopop.jpg /tmp #下载文件
done
注:sshpass也支持以文件的形式读取密码具体的操作后期会跟上
关于ansbile的更多相关文章
- ansbile Tags && Block
Tags 官网示例:https://docs.ansible.com/ansible/2.6/user_guide/playbooks_tags.html 编写执行playbook的时候,每次修改完y ...
- 关于ansbile工具的shell、command、script、raw模块的区别和使用场景
command模块 [执行远程命令] [root@node1 ansible]# ansible testservers -m command -a 'uname -n' script模块 [在远程主 ...
- 让ansbile和docker愉快的在一起
引自: http://cloud.51cto.com/art/201510/494328.htm
- Ansbile实战经验
一.相关用法: 1.执行shell 获取web组里得eth0接口信息 ansible web -a "ifconfig eth0" 2.执行ifconfig eth0 命令,ans ...
- ansible 自动化(3)
批量执行playbooks 远程批量命令执行的另外一种方式是用playbooks:这里是playbooks的官方文档:http://docs.ansible.com/playbooks.html这里有 ...
- 拿到新机器,进行初始化和部署Nginx的过程
1. 在/etc/ansbile/hosts中添加主机init 2. 在sysinit.yml中修改要初始化的机器: hosts: init 3. 设置不检查key export ANS ...
- 使用ansible批量管理远程服务器
使用ansible批量管理远程服务器 背景 本地需要管理远程的一批服务器,主要执行以下任务: 1) 将本地的文件复制到远端所有服务器: 2) 需要在远程服务器中执行一个个命令: 远端服务器路径并非完全 ...
- Ansible学习总结(1)
---恢复内容开始--- 1. Ansible概述 ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.cfengine.chef.func.fabric) ...
- 服务器批量管理软件ansible安装以及配置
1.yum安装(管理主机以及被管理主机都需要安装) yum install epel-release yum install ansible 2.配置管理主机 vim /etc/ansible/hos ...
随机推荐
- servlet遇到的问题
1 创建web项目没有xml自动生成 2 servlet 忽然报奇怪500错误 出现的BUG原因 JAVA bean没有设置 自动导入了其他User包
- vue 设置全局变量、指定请求的 baseurl
一. 基本环境前端vue:2.5.6axios:0.18使用vue脚手架构建项目.参照:webstorm搭建vue项目后台ssm框架前后端数据采用json格式传输二. 前端配置axios配置1.安装: ...
- 【C/C++】内存对齐规则和实战
内存对齐规则和实战 这篇文章是我的平时的一个笔记修改后来的.这里主要介绍一下内存对齐的规则,以及提供一些实战一下.几篇我觉得比较好的详细的介绍内存对齐的作用什么的博文会在文末附上. 规则 在开始实战前 ...
- Beta冲刺版本第二天
该作业所属课程:https://edu.cnblogs.com/campus/xnsy/SoftwareEngineeringClass2 作业要求地址:https://edu.cnblogs.com ...
- 两步创建vue全局组件
import Login from './Login' export default { install: function(Vue){ Vue.component('Login', Login); ...
- 使用select异步IO实现socketserver服务器 源码剖析
#_*_coding:utf-8_*_ #这是一个echo server,客户端消息,服务端回复相同的消息 import select, socket, sys, queue # Create a T ...
- HADOOP HA 报错 - 所有 namenode 都是standby --集群报错: Operation category READ is not supported in state standby
报错: 经过查看集群的jps如下: ==================== hadoop01 jps =================== FsShell ResourceManager Name ...
- yii框架学习(MVC)
路由:两种方式,第一种是默认方式访问,假设配置了虚拟主机,那么localhost/web/index.php?r=admin/index 访问的是controllers目录下的admin控制器里 ...
- UNIX下socket通信 - UDP通信
一.UNIX下socket通信: socket套接字是一种可以进行网络通信的内核对象,它是一个唯一的标示符,一般称它为socket描述符. 注意:UDP通信需要客户端先发送消息,服务端先进行等待客户端 ...
- 第03组 Alpha冲刺(4/4)
队名:不等式方程组 组长博客 作业博客 团队项目进度 组员一:张逸杰(组长) 过去两天完成的任务: 文字/口头描述: 制定了初步的项目计划,并开始学习一些推荐.搜索类算法 GitHub签入纪录: 暂无 ...