自动化运维-使用Shell脚本简单实现

简介:

回顾:

1   安装etcd

[root@linux-node1 ~]# pip install python-etcd                                                       安装etcd软件


2   修改salt-master的配置文件,加配置,并重新启动salt-master

[root@linux-node1 ~]# vim /etc/salt/master

etcd_pillar_config:

  etcd.host: 10.0.0.7

  etcd.port: 4001


ext_pillar:

  - etcd: etcd_pillar_config root=/salt/haproxy/

3   添加节点

[root@linux-node1 ~]# curl -s http://10.0.0.7:2379/v2/keys/salt/haproxy/backend_www_oldboyedu_com/web-node4 -XPUT -d value="10.0.0.7:8080" | python -m json.tool


4   改haproxy-outside.sls文件添加jinja模版标志

[root@linux-node1 ~]# vim /srv/salt/prod/cluster/haproxy-outside.sls

    - template: jinja


5   修改配置文件

[root@linux-node1 ~]# vim /srv/salt/prod/cluster/files/haproxy-outside.cfg

{% for web,web_ip in pillar.backend_www_oldboyedu_com.iteritems() -%}

server ` web ` ` web_ip ` check inter 2000 rise 30 fall 15

{% endfor %}


脚本实现自动添加机器:

[root@linux-node1 ~]# cat auto.sh 

#!/bin/bash


MAIN_ADD_HOST=$1

create_host(){

        echo "create host ok"

}


deploy_service(){

    #salt 'linux-node2.example.com' state.sls nginx.install env=prod

    ADD_HOST_PORT="8080"

}


deploy_code(){

     echo "deploy code ok"

}


service_check(){

    STATUS=$(curl -s --head http://"$ADD_HOST":"$ADD_HOST_PORT"/ | grep '200 OK')

    if [ -n "$STATUS" ];then

        echo "ok"

    else

        echo "not ok"

        exit

    fi

}


etcd_key(){

  ADD_HOST=$1

  curl http://10.0.0.7:2379/v2/keys/salt/haproxy/backend_www_oldboyedu_com/$ADD_HOST -XPUT -d value="10.0.0.8:${ADD_HOST_PORT}"

}


sync_state(){

  salt 'linux-node1.example.com' state.sls cluster.haproxy-outside env=prod

}


main(){

  create_host;

  deploy_service;

  deploy_code;

  etcd_key $MAIN_ADD_HOST;

  sync_state;

}


main $1

老男孩网址:http://www.etiantian.org

qq:406564728

欢迎交流




     本文转自陈继松 51CTO博客,原文链接:http://blog.51cto.com/chenjisong/1714341,如需转载请自行联系原作者




相关文章
|
1天前
|
存储 Shell C语言
shell脚本 编程 变量 基本入门(详解)
shell脚本 编程 变量 基本入门(详解)
|
1天前
|
SQL 关系型数据库 MySQL
【简单无脑】自动化脚本一键安装虚拟机下的MySQL服务
该文章提供了在虚拟机上安装MySQL服务的简化方法,特别是针对新手。作者提供了一个自动化脚本`install_mysql.sh`,使得安装过程更简单。用户需要下载`install.rpm`资源,将其放在指定目录下,然后创建并编辑脚本文件,将提供的代码粘贴进去,通过`chmod u+x`授权,最后运行脚本`./install_mysql.sh [rpm文件路径]`来安装MySQL。文章还附有相关图片说明。
10 1
【简单无脑】自动化脚本一键安装虚拟机下的MySQL服务
|
1天前
|
SQL 缓存 关系型数据库
MySQL常见问题解决和自动化安装脚本
这篇内容包含了两个主要部分:解决MySQL登录问题和处理GPG密钥问题。当MySQL密码正确但无法登录时,可以通过执行SQL命令`ALTER USER`和`flush privileges`来修改和重置密码。对于MySQL安装时的GPG密钥错误,首先需要强制删除旧的MySQL仓库包,导入新的GPG公钥,然后安装MySQL服务器。如果遇到GPG检查错误,可以使用`--nogpgcheck`参数忽略检查来安装。最后,提供了一个自动化安装MySQL的脚本,用于检查旧版本、卸载残留、安装MySQL8并启动服务。
13 1
MySQL常见问题解决和自动化安装脚本
|
1天前
|
Shell Linux 编译器
C语言,Linux,静态库编写方法,makefile与shell脚本的关系。
总结:C语言在Linux上编写静态库时,通常会使用Makefile来管理编译和链接过程,以及Shell脚本来自动化构建任务。Makefile包含了编译规则和链接信息,而Shell脚本可以调用Makefile以及其他构建工具来构建项目。这种组合可以大大简化编译和构建过程,使代码更易于维护和分发。
8 3
|
7天前
|
弹性计算 运维 Shell
|
7天前
|
弹性计算 运维 监控
|
7天前
|
存储 弹性计算 运维
自动化收集员工信息的Shell脚本
【4月更文挑战第30天】
10 0
|
8天前
|
弹性计算 运维 Shell
使用shell 脚本打印图形3
【4月更文挑战第29天】
19 0
|
8天前
|
存储 弹性计算 运维
使用shell 脚本打印图形2
【4月更文挑战第29天】
17 0
|
8天前
|
弹性计算 运维 Shell
使用shell 脚本打印图形1
【4月更文挑战第29天】
18 0