进入到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. H3C 基本的局域网间路由

  2. C# double 好用的扩展

    在很多代码需要使用数学计算,在用到 double 很难直接判断一个值是 0 或者 1 ,判断两个值相等. 本文提供一个数学扩展,让大家可以简单使用到 double 判断 在开始看本文之前,希望大家是知 ...

  3. The bind() Method

    The bind() method was added in ESMAScript 5, but it is easy to simulate in ESMAScrpt 3. As its name ...

  4. vue项目安装scss,以及安装scss报错(this.getResolve is not a function)

    1.安装scss: npm install node-sass sass-loader vue-style-loader --save-dev //安装node-sass sass-loader vu ...

  5. Java中try catch finally执行

    直接上代码实例: public static void main(String[] args) {    System.out.println(test1()); } static int test1 ...

  6. RabbitMQ-事务和Confirm消息确认

    ,如果要保证消息的可靠性,需要对消息进行持久化处理,然而消息持久化除了需要代码的设置之外,还有一个重要步骤是至关重要的,那就是保证你的消息顺利进入Broker(代理服务器),如图所示: 正常情况下,如 ...

  7. 2018-8-10-C#-使用Emit深克隆

    title author date CreateTime categories C# 使用Emit深克隆 lindexi 2018-08-10 19:16:52 +0800 2018-2-13 17: ...

  8. Next.js 笔记

    NEXT 中文文档地址! next.js 只有服务端使用的包需要做单独处理,无需打包到项目中,可以使用@zeit/next-bundle-analyzer观察代码. Router.beforePopS ...

  9. 牛客多校第一场 B Inergratiion

    牛客多校第一场 B Inergratiion 传送门:https://ac.nowcoder.com/acm/contest/881/B 题意: 给你一个 [求值为多少 题解: 根据线代的知识 我们可 ...

  10. 适配器模式 iOS

    前言: 最近需求作一个公共空间的需求,最后决定用适配器模式来做. 首先,需求是什么? 在我们app中,会有很多列表,tableviewcell的样式会比较统一(当然,我之前在公司那个app不算很大,基 ...