乌班图20.04 ansible免密登录及简单的剧本编写

一、ansible免密登录批量设置
1、首先在ansible执行节点生成秘钥,哪个用户用,就用哪个生成

ssh-keygen -t rsa

2、在/etc/ansible/hosts文件中写入主机组

[ssh]
192.168.0.[10:50]
192.168.1.18
...

[ssh:vars]
ansible_ssh_user='用户名'
ansible_ssh_pass='密码'
ansible_ssh_port='远程端口号'
ansible_sudo_pass='要切换的用户密码'                             #sudo用户默认使用的root密码
ansible_become='true'
ansible_become_user='切换的用户'                                 #切换的用户
ansible_become_method='sudo'                               #有俩个模式可选su和sudo,su有报错,网上说是版本问题
ansible_become_pass='密码'                           #root密码
###
该host文件里写的跳转普通用户后会自动用sudo切换成root用户
###

3、写一个剧本key.yaml

- hosts: ssh
  tasks:
      - name: Nonsecret authentication
        authorized_key: user=用户名  key="{{ lookup('file','家目录/.ssh/id_rsa.pub')}}"  state=present

4、ansible-playbook  key.yaml 执行即可

###

可能中间有重复验证的地方,但是这样全程操作下来,进行ansible管理我这边是没有问题的

###

ansible-playbook      --syntax-check

二、简单的剧本编写

#图片来自大佬 

例:

- hosts: ssh

 tasks:

  - copy:  src=本机路径      dest=ssh主机组中的路径

  - shell:  shell语言

###

据大佬推荐尽量少用shell模块。我个人暂时没有发现槽点,所以copy和shell模块暂时是常用的

###

###

可能的报错补充:

如果ansible的管理机器从未登录过被管理机器,那么中间会弹出一个是否永久保存该主机信息到本地已知主机中。(瞎翻译的。。,大致应该就是这个意思)

vi /etc/ansible/ansible.cfg
[defaults]
forks          = 8           #执行时并发数
host_key_checking = False    #不检测host key    关键是这个,加了之后可以跳过上边的那个描述验证,加完重新执行即可。有可能你的ansible.cfg文件是个空文件,那么一定记得加[defaults]这个模块,然后在模块下写。不然会报错。

###

三、ansible基本命令选项

ansible <host-pattern> [-m module_name] [-a args]
ansible +被管理的主机(ALL) +模块  +参数
    
    --help                 显示帮助
    --version              显示版本
    -m module              指定模块,默认为command
    -v                     详细过程 –vv -vvv更详细
    --list-hosts           显示主机列表,可简写 --list
    -k, --ask-pass         提示输入ssh连接密码,默认Key验证
    -C, --check            检查,并不执行
    -T, --timeout=TIMEOUT  执行命令的超时时间,默认10s
    -u, --user=REMOTE_USER 执行远程执行的用户
    -b, --become           代替旧版的sudo切换
        --become-user=USERNAME 指定sudo的runas用户,默认为root
    -K, --ask-become-pass  提示输入sudo时的口令
    

四、ansible并行跑

修改改参数即可,但是会增加主服务器的负担

在playbook中,可以加这个参数进行修改

补充:ansible yum安装

#需要先装一个扩展源,不然没有这个包
yum install -y epel-release
yum  -y install  ansible

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值