进入到ansible和python环境

进入python3.6虚拟环境

#su - deploy

#source .py3-a2.5-env/bin/activate

加载ansible 2.5版本

#source .py3-a2.5-env/ansible/hacking/env-setup -q

验证ansible加载效果

#ansible-playbook --version

编写playbooks框架

新建一个目录和多个目录

#mkdir test_playbooks

#cd test_playbooks/

#mkdir inventory roles

进入到 inventory,创建testenv文件,

# cd inventory

#vi testenv

添加目标主机服务地址

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

退回到上一级目录

#cd ../

进入roles目录,创建子目录

#cd roles

#mkdir -p testbox/tasks

进入子目录,创建main.yml的文件,作为playbooks的主配置文件

#cd testbox/tasks/

#vi main.yml

添加测试任务,保存退出

- name: Print server name and user to remote testbox
shell: "echo 'Currently {{ user }} is logining {{ server_name }}' > {{ output }}"

返回到test_playbooks目录

#cd ../../..

创建一个playbooks任务入口文件,保存退出

#vi deploy.yml

- hosts: "testservers"     # 对应testenv文件下主标签,用定义调用标签下目标主机
gather_facts: true # 获取目标主机信息
remote_user: root # 告诉ansible在目标主机下,使用root账户权限,进行所有系统的文件操作
roles: # 进入roles下testbox任务目录,进行接下来的任务执行
- testbox

打印playbooks目录下的树状结构

#tree .

配置ansible主机和目录主机的密钥认证

返回root用户

#su - root

编辑hosts

#vi /etc/hosts

添加dns记录   test.example.com

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 192.168.96.151 test.example.com

返回deploy用户

#exit

给deploy用户创建一个密钥认证

#ssh-keygen -t rsa

一直回车

这时候生成的公钥和私钥都在同一个目录下/home/deploy/.ssh/

指定deploy用户的公钥

#ssh-copy-id -i /home/deploy/.ssh/id_rsa.pub root@test.example.com

输入目标主机的密码,就可以建立连接了

测试不使用密码连接主机

#ssh root@test.example.com

测试完毕,返回到deploy用户下

#exit

进入到test_playbooks目录下,执行ansible-playbook下的deploy.yml文件。此时playbooks执行完成

#ansible-playbook -i inventory/testenv ./deploy.yml

登录到目标主机

#ssh root@test.example.com

查看当前目录下test.txt 。成功把参数写进入了

#cat test.txt

已成功将乐谱演奏给听众!!

最新文章

  1. HTML5 程序设计 - 使用HTML5 Canvas API
  2. SQList
  3. 深入理解闭包系列第三篇——IIFE
  4. Spring源码阅读:IOC容器的设计与实现(二)——ApplicationContext
  5. setTimeout()与setInterval()——走马灯效果
  6. 安装 SQL server 2008 R2
  7. Oracle Goldengate REPLICAT启动时报正在运行解决办法
  8. Linux后台开发常用工具
  9. activiti自定义流程之自定义表单(二):创建表单
  10. iOS 设置connect超时
  11. Top 10 Mapping APIs: Google Maps, Microsoft Bing Maps and MapQuest
  12. 根据IP地址获得地理位置
  13. 简述负载均衡&CDN技术(转)
  14. java在string和int相互转化
  15. .net 4.0 中的特性总结(二):默认参数、命名参数
  16. [2019.03.21]LF, CR, CRLF and LFCR(?)
  17. React(七)独立组件间的共享Mixins
  18. hive 数值计算函数
  19. 深度优先遍历(DFS)(转)
  20. vue-all

热门文章

  1. H3C 单路径网络中环路产生过程(3)
  2. P1033 沙茶会传染
  3. 如何在centos 7.4 上安装 python 3.6
  4. Codevs 四子连棋 (迭代加深搜索)
  5. TOJ4587:抓苹果(DP)
  6. react-native-swiper使用时候的小坑
  7. codeforces 1183H 动态规划
  8. 反弹shell理解
  9. java面试-java动态代理和cglib代理
  10. 0017 CSS 三大特性:层叠性、继承性、优先级