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的更多相关文章

  1. ansbile Tags && Block

    Tags 官网示例:https://docs.ansible.com/ansible/2.6/user_guide/playbooks_tags.html 编写执行playbook的时候,每次修改完y ...

  2. 关于ansbile工具的shell、command、script、raw模块的区别和使用场景

    command模块 [执行远程命令] [root@node1 ansible]# ansible testservers -m command -a 'uname -n' script模块 [在远程主 ...

  3. 让ansbile和docker愉快的在一起

    引自: http://cloud.51cto.com/art/201510/494328.htm

  4. Ansbile实战经验

    一.相关用法: 1.执行shell 获取web组里得eth0接口信息 ansible web -a "ifconfig eth0" 2.执行ifconfig eth0 命令,ans ...

  5. ansible 自动化(3)

    批量执行playbooks 远程批量命令执行的另外一种方式是用playbooks:这里是playbooks的官方文档:http://docs.ansible.com/playbooks.html这里有 ...

  6. 拿到新机器,进行初始化和部署Nginx的过程

    1. 在/etc/ansbile/hosts中添加主机init 2. 在sysinit.yml中修改要初始化的机器:   hosts: init 3. 设置不检查key      export ANS ...

  7. 使用ansible批量管理远程服务器

    使用ansible批量管理远程服务器 背景 本地需要管理远程的一批服务器,主要执行以下任务: 1) 将本地的文件复制到远端所有服务器: 2) 需要在远程服务器中执行一个个命令: 远端服务器路径并非完全 ...

  8. Ansible学习总结(1)

    ---恢复内容开始--- 1. Ansible概述 ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.cfengine.chef.func.fabric) ...

  9. 服务器批量管理软件ansible安装以及配置

    1.yum安装(管理主机以及被管理主机都需要安装) yum install epel-release yum install ansible 2.配置管理主机 vim /etc/ansible/hos ...

随机推荐

  1. 9.0.网络编程_IO 通信模型

    5. IO 通信模型 网络通信的本质是网络间的数据 IO.只要有 IO,就会有阻塞或非阻塞的问题,无论这个 IO 是网络的,还是硬盘的.原因在于程序是运行在系统之上的, 任何形式的 IO 操作发起都需 ...

  2. Python tuple元组学习

    1.tuple和list非常类似,但是tuple一旦初始化就不能修改 classmates = ('Michael', 'Bob', 'Tracy') 现在,classmates这个tuple不能变了 ...

  3. BZOJ 最大公约数 (通俗易懂&效率高&欧拉函数)

    题目 题目描述 给定整数\(N\),求\(1 \le x,y \le N\)且\(gcd(x,y)\)为素数的数对\((x,y)\)有多少对. \(gcd(x,y)\)即求\(x,y\)的最大公约数. ...

  4. Python中的操作符及优先级

    附注: 1.  Python中的按位运算符是把数字看作二进制来进行计算的.Python中的按位运算法则如下: 按位与   ( bitwise and of x and y ) &  举例: 5 ...

  5. matlab 基础知识1

    一.数组和矩阵注意 逗号 和 分号 的区别 向量生成方式: 传统方式:行向量 :空格,逗号列向量 :分号,回车 函数方式: x = linspace(a,b,n) 等分关系,从a 到 b, n等分.n ...

  6. JavaScript设计模式与开发实践(一)

    一.this this的指向大致可以分为以下几种: 作为对象的方法调用 作为普通函数调用 构造器调用 Function.prototype.call或Function.prototype.apply ...

  7. Django2.1.1与xadmin0.6.0遇到的坑

    Django2.1.1与xadmin0.6.0遇到的坑 BlueMiaomiao关注4人评论11188人阅读2018-09-23 12:17:56 (1)django2.0把from django.c ...

  8. Java 对象序列化和反序列化 (实现 Serializable 接口)

    序列化和反序列化的概念 把对象转换为字节序列的过程称为对象的序列化.  把字节序列恢复为对象的过程称为对象的反序列化. 对象的序列化主要有两种用途: 1) 把对象的字节序列永久地保存到硬盘上,通常存放 ...

  9. 系统的学习Devops

    系统的学习devops 1. 学习一门编程语言 Java python JavaScript 2.了解不同的操作系统概念 线程和并发,套接字,I/O管理,虚拟化,内存存储和文件系统 3.掌握终端生存大 ...

  10. CSS 定位详解

    CSS 有两个最重要的基本属性,前端开发必须掌握:display 和 position position 属性的作用 position属性用来指定一个元素在网页上的位置,一共有5种定位方式,即posi ...