Ansible自动化部署2

Ansible自动化部署2

接上篇文章Ansible自动化部署1
# ansible-playbook --version 验证加载效果

搭建Ansible框架

# mkdir test_playbooks

# cd test_playbooks

# mkdir inventory

# mkdir roles

# cd inventory

# vi testenv

[testservers]
test.example.com

[testservers:vars]
server_name=test.example.com
user=root
output=/root/test.txt

保存退出

# cd roles

# mkdir testbox

# cd testbox

# mkdir tasks

# cd tsks

# vi main.yml

- name: Print server name and user to remote testbox

  shell:"echo 'Currently {{ user }} is logining {{ server_name }} ' > {{ output }}"    
  //创建了一个tasks测试任务,功能是在目标主机下去输出一行带有参数的语句到目标主机的某一个路径下

保存退出

返回test_playbooks目录

创建一个任务入口文件

# vi deploy.yml

- hosts: "testservers"   //对应inventory下的testenv文件下的testservers组标签
  gather_facts: true   //用来获取目标主机下的一些信息
  remote_user: root  //告诉Ansible在目标主机下使用root用户权限进行所有系统的文件操作
  roles:
    - testbox      //进入这个目录进行接下来的任务执行

保存退出

# tree . 打印当前目录下的树状结构

配置主机的秘钥认证保证Ansible无需密码即可访问我们的目标主机,进行相应的部署操作

在进行ssh秘钥认证免密码之前需要在Ansible主机下去创建目标主机的dns记录

返回到root用户

# vi /etc/hosts

另起一行

10.1.0....  test.example.com      
//相当于创建了一个本地的test.example.com的dns记录并且手动将test.example.com的dns记录解析为10.1.0....IP地址

保存退出

# exit

# ssh-keygen -t rsa 创建秘钥认证对

一路回车
这时私钥和公钥都保存在/home/用户/.ssh/目录下,私钥为id_rsa,公钥为id_rsa.pub

# ssh-copy-id -i /home/用户/.ssh/id_rsa.pub root@test.example.com 指定用户的公钥

输入yes然后输入root密码,这样就可以把公钥传送给目标主机的root ssh目录下

测试是否可以不需要密码就可以访问到test.example.com这台主机当中# ssh root@test.example.com

# exit 退出

# ansible-playbook -i inventory/testenv ./deploy.yml 执行ansible-playbook的入口文件

在这里插入图片描述

# ssh root@test.example.com 查看Ansible是否执行成功

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值