zoukankan      html  css  js  c++  java
  • ansible自动化(二)

    一、安装支持包

      yum -y install lrzsz vim net-tools gcc gcc-c++ ncurses ncurses-devel zlib-devel zlib openssl-devel openssl

    二、源码编译Python3.5

      下载安装包:

      解压: tar xf Python-3.5.2.tgz -C /usr/src/

      移动: cd /usr/src/Python-3.5.2/

      预配置: ./configure --prefix=/usr/local/python/

      编译: make && make install

      创建软链接: ln -s /usr/local/python/bin/python3 /usr/bin/python3

      查看命令是否存在: which python3

      查看命令版本: python3 -V (linux下默认2.6版本,基本不用)

    三、使用pip3安装ansible(ansible的批量分发调用模块时,基本都需要Python)

    安装ansible最新版本(用pip3的方式安装,下了Python就有这个命令,这是开发装软件的方式,需要用到网络):

      /usr/local/python/bin/pip3 install ansible

    若在此处报错pip,就按下条命令执行:

      /usr/local/python/bin/pip3 install --upgrade pip

      /usr/local/python/bin/pip3 install ansible

    安装好ansible后,创建软链接: ln -s /usr/local/python/bin/ansible /usr/local/bin

    查看命令: which ansible

    查看ansible的版本: ansible --version

    ansible查看帮助:

    查看ansible的总帮助: /usr/local/python/bin/ansible-doc -l

    查看shell模块的帮助: /usr/local/python/bin/ansible-doc(总帮助) -s(选择模块) shell

               /usr/local/python/bin/ansible-doc -s raw

    四、分发密钥

    生成密钥对: ssh-keygen -t rsa -f ~/.ssh/id_rsa -P ""

     

    分发密钥: scp .ssh/id_rsa.pub root@192.168.126.151:/root/.ssh

    测试免密连接: ssh 192.168.126.151 (默认用root连接)

    五、ansible连接web服务器的配置文件

    创建目录: mkdir -p /etc/ansible

    创建文件: touch /etc/ansible/hosts

    写入配置文件内容: vim /etc/ansible/hosts (这里的主机名可以不映射,因为后面的IP已经映射过了)

    六、ansible的使用方法

    获取web的平均负载值: ansible web01 -m command -a 'uptime'

    ansible -i /etc/ansible/hosts/ 主机或主机组 -m 指定模块 -a 命令

    -i (指定配置文件位置,如果不指定,默认到ansible配置文件/etc/ansible/hosts找)

    检查服务器是否正常: ansible all -m ping (ping不需要-a指定参数)

     

    command模块 命令不支持管道符、重定向操作 (连接端需要支持Python)

    shell模块 命令支持管道符、重定向操作。shell模块大部分命令都支持。(连接端需要支持Python)

    raw模块 最原始的方式执行命令(只有极少数情况下使用,可以不依赖Python,仅通过ssh实现。)

     copy模块 批量下发文件或文件夹自动备份,更改属主属组。

    script模块 能够实现远程服务器批量运行本地的shell脚本/server/scripts/

    编译脚本:

    编写nginx安装脚本: vim auto_nignx.sh

    #!/bin/sh
    #nginx install shell scripts

    test -d /media/cdrom || mkdir -p /media/cdrom
    mount /dev/sr0 /media/cdrom &> /dev/null
    yum -y install gcc gcc-c++ make pcre pcre-devel zlib zlib-devel openssl openssl-devel &> /dev/nul
    l
    test -d /service/scripts || exit 3
    cd /service/scripts
    tar xf nginx-1.10.2.tar.gz -C /usr/src
    cd /usr/src/nignx-1.10.2/
    ./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_stub_status_module &> /d
    ev/null
    make &> /dev/null
    make install &> /dev/null
    exit 0

    编写分发脚本: vim fenfa.sh

    #!/bin/sh

    Group=$1

    ansible $Group -m copy -a "src=/service/scripts dest=/bin/sh /service/scripts/ mode=0755"
    ansible $Group -m scripts -a "/service/scripts/auto_nginx.sh"

    执行分发脚本:

     七、剧本play-book和ansible共同使用的方式

    创建软链接: ln -s /usr/local/python/bin/ansible-playbook /usr/local/bin/

    查看命令: which ansible-playbook

    设定剧本: vim test_shell.yaml

    剧本用.yaml结尾。

    执行剧本: ansible-playbook test_shell.yaml

    当传输过程中出错误时,更改一下配置文件: vim /etc/ssh/sshd_config

    更改配置文件之后需要重启: service sshd reload

    nignx配置下发并检测:

     

    在剧本中引入自定义变量:

     ansible系统内置变量的取用方法: ansible all(或自己的IP地址) -m setup | less

    python3的使用方法:

    在命令界面直接输入python3

    Python3中取键值的方法:

    利用template模块下发可变的配置文件:

      下发配置文件里面使用判断语法:

      测试执行(自定义一个端口号):

      执行脚本:

       测试不定义端口号(置空):

      再次执行脚本:

    playbook的notify通知和下发nginx配置

    如果你下发的文件引起它改变了,它通知在执行一遍文件,如果他没有引起改变,则通知不下发就不会触发改变对方服务。

  • 相关阅读:
    easyui-tabs扩展根据自定义属性打开页签
    nhibernate 3.x新特性
    c# dynamic的属性是个变量
    草稿
    好番记录
    今日内容
    PHP Filter
    PHP Filesystem
    PHP Directory 函数
    PHP Date/Time 函数
  • 原文地址:https://www.cnblogs.com/mashuang/p/10093652.html
Copyright © 2011-2022 走看看