zoukankan      html  css  js  c++  java
  • ansible quick start

    1. ansible默认开启ControlPersist,也就是持续化ssh的socket连接,以跳过每次task都需要进行主机认证。

    2. 但是centos的openssh版本太老了,不支持ControlPersist,所以ansible会切换使用Python implementation of OpenSSH called ‘paramiko’。

    3. ansible默认会认为你是使用秘钥验证的,如果需要输入密码连接,使用-k参数,如果要指定sudo密码,请使用-K参数。

    4. 拿到一台新服务器,先初始化系统
       4.1 编辑hosts文件,添加
         [init]
         43.254.55.181
           
       4.2 测试通信
           ansible 43.254.55.181 -m ping -k
           
       4.3 创建playbook相应目录
           mkdir -p roles/{common,nginx,system}/{defaults,files,handlers,meta,tasks,templates,vars}
           
       4.4 复制yum配置文件tar包和preinstall.sh脚本到common/files目录
       
       4.5 编辑common/tasks/main.yml
       - name: cp yum config tar files
         copy: src=CentOS6.5.repo.tar.gz dest=/tmp
       - name: cp preinstall script
         copy: src=preinstall.sh dest=/tmp
       - name: execute preinstall script
         shell: /bin/bash /tmp/preinstall.sh
       
     

       
       4.6 编辑preinstall.yml文件
       - name: preinstall
         hosts: init
         remote_user: root
         roles:
           - common
       
       4.7 执行初始化安装
         #ansible-playbook preinstall.yml -k  
       
       4.8 复制Os_Init_Optimization.sh脚本到system/templates/目录
       
       4.9 配置变量:system/vars/main.yml
         port: 50000
         
       4.10 配置task:system/tasks/main.yml
         - name: copy Os_Init_Optimization.sh script to client
           template: src=Os_Init_Optimization.sh dest=/tmp/Os_Init_Optimization.sh
         - name: execute Os_Init_Optimization.sh script
           shell: /bin/bash /tmp/Os_Init_Optimization.sh

       4.11 编辑sysinit.yml
         - name: system init
           hosts: init
           roles:
             - system

       4.12 执行初始化
         ansible-playbook sysinit.yml -k
       
    5. 给初始化化后的服务器分发key
       5.1 touch  .ssh/known_hosts           #paramiko不能自动创建known_hosts文件,手动创建
       
       5.2 修改/etc/ansible/hosts文件
         43.254.55.181:50000
       
       5.3 分发公钥
          批量分发:ansible init  -m authorized_key -k -a "user=lsyw key='{{ lookup('file', '/home/lsyw/.ssh/id_rsa.pub') }}' path=/home/lsyw/.ssh/authorized_keys"

          单台分发:ssh-copy-id -i "/root/.ssh/id_rsa.pub" "-p 50000 lsyw@116.204.9.132"         #这个命令同时会把主机加入known_hosts文件

          注:默认登录的时候,是根据公钥里面注明的用户家目录下的.ssh/下面去寻找私钥。

       5.4 测试key登录
         ansible init -m ping
         
    6. 备注:
       由于初始化后服务器不允许root登录ssh,所以操作ansible都使用lsyw用户,但是大部分操作需要root权限,所以需要su到root下执行:
       ansible init -S -R root -m ping -K     # -S -R  指明su及用户 |  -K 指定手动输入su的密码
       
       

  • 相关阅读:
    优化问题中什么形式有闭式解
    选择排序
    超算私房菜之集群搭建
    Scramble String
    Insert Interval
    Implement strStr()
    Permutation Sequence
    Insertion Sort List
    Restore IP Addresses
    Recover Binary Search Tree
  • 原文地址:https://www.cnblogs.com/zhaojonjon/p/5752047.html
Copyright © 2011-2022 走看看