进入到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

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

playbooks框架部署远程主机的更多相关文章

  1. ThinkPHP框架部署

    ThinkPHP框架部署 1.下载ThinkPHP框架 下载地址:http://www.thinkphp.cn/ ThinkPHP官方网站 下载ThinkPHP3.2.3完整版,下载后如下图所示: A ...

  2. Thinkphp框架部署步骤

    Thinkphp框架部署步骤 thinkphp框架部署起来简单,但是由于步骤较多也容易遗忘: 这是安装了集成环境后的一个www根目录结构: 然后需要在这个目录下面创建一个文件夹做项目:thinkphp ...

  3. 微信小程序框架部署:mpvue+typescript

    开发前提: 1.在微信公众平台注册申请 AppID 2.安装开发者工具https://developers.weixin.qq.com/miniprogram/dev/devtools/downloa ...

  4. playbooks框架与子文件编写规范

    Test Playbooks框架 ​ 详细目录testenv文件 ​ 主任务文件main.yml ​ 任务入口文件deploy.yml ​ Ansible连接playbooks需要添加ssh协议认证 ...

  5. gogin web框架部署学习

    首先去git上面找了一个gin框架拿来学习gin web开发: flipped-aurora/gin-vue-admin: 基于vite+vue3+gin搭建的开发基础平台(已完成setup语法糖版本 ...

  6. yii框架部署

    1.下载框架解压,复制framework 2.可以看一下里边的目录结构 3.将framework文件夹复制到你想要存放的地方 4.然后执行cmd命令,创建自己的应用系统,这是可能遇到的问题 5.不是内 ...

  7. 自动化 测试框架部署(python3+selenium2)

    安装Python 从https://www.python.org/downloads/下载最新版本的Python3,请注意,是3: 需要将Python的安装目录和安装目录下的Scripts文件夹添加到 ...

  8. 使用spring.net 1.3.2框架部署在虚拟目录上发生错误

    如果你的网站使用了Spring.net 1.3.2,并部署在IIS的虚拟目录上,那么将会出现如下错误:    The virtual path '/currentcontext.dummy' maps ...

  9. 把ABP框架部署到Docker中

    本文旨在将Abp项目部署到Docker容器中,借助Gitee存储,Jenkins持续构建,利用Docker Compose生成镜像.启动镜像,在官网给定的Abp项目中,虽然用到了Dockerfile. ...

随机推荐

  1. @ENABLEWEBSECURITY和@ENABLEWEBMVCSECURITY有什么区别?

    @EnableWebSecurity和@EnableWebMvcSecurity有什么区别? @EnableWebSecurity JavaDoc文档: 将此注释添加到@Configuration类中 ...

  2. 2018-6-15-win10-uwp-xaml-绑定接口

    title author date CreateTime categories win10 uwp xaml 绑定接口 lindexi 2018-6-15 21:7:19 +0800 2018-2-1 ...

  3. 2018百度之星初赛B - A,D,F

    总结:这一次的百度之星之行到这里也就结束了,充分的认识到了自己的不足啊...果然还是做的题太少,,见识的题型也还太少,对于STL的掌握还是不够到位啊!!(STL大法是真的好,建议大家认认真真的好好学学 ...

  4. C# 文件在数据库 的 存取

    ... /// <summary> /// 获取数据库Image字段数据,保存到本地 /// </summary> /// <param name="sende ...

  5. Spark MLlib 示例代码阅读

    阅读前提:有一定的机器学习基础, 本文重点面向的是应用,至于机器学习的相关复杂理论和优化理论,还是多多看论文,初学者推荐Ng的公开课 /* * Licensed to the Apache Softw ...

  6. Date日期时间相关

    最近在封装一个关于时间函数的功能时,竟发现这些最基本的函数都有些生疏,于是进来来总结复习下,巩固自己记忆的同时,希望能帮助到需要的人 首先了解下日期对象相关的方法 var date = new Dat ...

  7. VIM 用正则表达式,非贪婪匹配,匹配竖杠,竖线, 匹配中文,中文正则,倒数第二列, 匹配任意一个字符 :

    VIM 用正则表达式 批量替换文本,多行删除,复制,移动 在VIM中 用正则表达式 批量替换文本,多行删除,复制,移动 :n1,n2 m n3     移动n1-n2行(包括n1,n2)到n3行之下: ...

  8. Java 学习笔记(6)——继承

    之前说过了Java中面向对象的第一个特征--封装,这篇来讲它的第二个特征--继承.一般在程序设计中,继承是为了减少重复代码. 继承的基本介绍 public class Child extends Pa ...

  9. 使用Git和Github来管理自己的代码和笔记

    一.Github注册 1.先注册github.com的账号,官方网站: https://github.com/ 2.登录 3.创建仓库,仓库分公开的和私有的,公开的是免费的,私有的是收费的.我现在创建 ...

  10. 0019 盒子模型(CSS重点):边框、内外边距、布局稳定性、PS

    typora-copy-images-to: media 第01阶段.前端基础.盒子模型 盒子模型(CSS重点) css学习三大重点: css 盒子模型 . 浮动 . 定位 主题思路: 目标: 理解: ...