ansible配合shell脚本批量编译安装python3.6.6

[[email protected]:/etc]# tree /etc/ansible/
/etc/ansible/
├── ansible.cfg
├── hosts
├── python.yml
└── roles
    └── python_install
        ├── files
        │   └── Python-3.6.6.tgz
        ├── tasks
        │   ├── copy.yml
        │   ├── install.yml
        │   └── main.yml
        └── templates
            └── python_install.sh

说明:
files:存放需要同步到异地服务器的源码文件及配置文件;
handlers:当资源发生变化时需要进行的操作,若没有此目录可以不建或为空;
meta:角色定义可留空;
tasks:python安装过程成需要进行的执行的任务;
templates:用于执行python安装的模板文件,一般为脚本;
vars:本次安装定义的变量,若无必要可以不建

python3.6.6源码存放目录:
python_install/files/Python-3.6.6.tgz

具体操作
1.创建python角色文件,用于调用python_install
[[email protected]:/etc/ansible]# cat /etc/ansible/python.yml
---
- hosts: all
  remote_user: root
  roles:
    - python_install

2.创建任务文件
[[email protected]:/etc/ansible/roles]# cat python_install/tasks/copy.yml
- name: copy python_tgz to client
  copy: src=/etc/ansible/roles/python_install/files/Python-3.6.6.tgz dest=/usr/local/src/
- name: copy install_python_script to client
  copy: src=/etc/ansible/roles/python_install/templates/python_install.sh dest=/tmp/python_install.sh owner=root group=root mode=755

[[email protected]:/etc/ansible/roles]# cat python_install/tasks/install.yml
- name: install python
  shell: /bin/bash /tmp/python_install.sh

[[email protected]:/etc/ansible/roles]# cat python_install/tasks/main.yml
- include: copy.yml
- include: install.yml

注意:
a.copy如果复制目录,需要加上递归参数,recurse;
b.copy如果复制目录,没有目录将会在目标服务器上创建;
c.copy如果复制文件到目标服务器的某一个目录下,需要在dest参数上加上/usr/local/src/,而不是/usr/local/src,否则ansible将会把文件复制为src,而不是放在src目录下。
4.编写模板脚本

[[email protected]:/etc/ansible/roles]# cat python_install/templates/python_install.sh
#!/bin/bash
# install python3.6.6
# yum tools

yum -y groupinstall "Development tools"
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel
cd /usr/local/src
mkdir /usr/local/python3
tar -zxf Python-3.6.6.tgz
cd Python-3.6.6
./configure --prefix=/usr/local/python3
make && make install
ln -s /usr/local/python3/bin/python3 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
# end

安装脚本功能:
1)安装yum依赖包
2)创建目录,解压文件并编译安装到目标目录
3)生成软连接

执行playbook
测试
[[email protected]:/etc/ansible]# ansible-playbook -C python.yml
执行
[[email protected]:/etc/ansible]# ansible-playbook python.yml 

原文地址:https://www.cnblogs.com/reblue520/p/9385354.html

时间: 2024-12-13 16:32:44

ansible配合shell脚本批量编译安装python3.6.6的相关文章

Centos6.5上面用Shell脚本一键编译安装mysql5.5.47

操作系统及其mysql配置文件说明:Linux系统:Centos6.5 cat /etc/centos_release     查看centos版本信息 [[email protected] ~]# cat /etc/centos-release CentOS release 6.5 (Final) uname -r        #显示操作系统的发行版号 [[email protected] ~]# uname -r 2.6.32-431.el6.x86_64 uname -a      #显

shell脚本自动编译安装Apache

shell脚本自动安装Apache,适用于CentOS #!/bin/bash ##################################################### #Create date 2018.4.10 #Author: wansheng #Function: shell script install apache2.4 #Email: [email protected]  #System: Linux CentOS-7 ######################

自动化运维Ansible批量部署服务+shell脚本批量推送公钥

一.概述分析 由于互联网的快速发展导致产品更新换代速度逐渐加快,运维人员每天都要进行大量的维护操作,仍旧按照传统方式进行维护会使得工作效率低下.这时,部署自动化运维就可以尽可能安全.高效地完成这些工作.一般会把自动化运维工具划分为两类:一类是需要使用代理工具的,也就是基于专用的ABem程序来完成管理功能,如: Puppet.Func. Zabbix等:另外一类是不需要配置代理工具的,可以直接基于SSH服务来完成管理功能,如: Ansible. Fabric等. - 下面介绍几款功能类似的自动化运

shell脚本批量部署ssh

日常运维工作中,需要给几十上百台服务器批量部署软件或者是重启服务器等操作, 这样大量重复性的工作一定很苦恼,本文给大家提供了最基本的批量操作的方法,虽然效率不高,对于初学者来说还是好理解.由于刚开始学习写脚本,什么 puppt这样的高级工具还不会使用,就简单的利用shell脚本.ssh-keygen.expect来实现.希望能给各位带来帮助,不足之处还请留言 指出,大家共同进步. 首先,需要检查expect是否安装:rpm -qa|grep expect 然后,在操作机上创建公钥:ssh-key

shell脚本一键在线安装redis数据库(使用函数实现)

shell脚本一键在线安装redis数据库(使用函数实现) 前面的文章给出了有关手工编译安装redis的流程,并且在模拟搭建redis集群时给出了在线安装redis的过程,于是就想着自己写好在线安装的redis脚本,本文主要使用shell函数来实现并且验证在线安装的过程,执行无误后就想着分享出来. PS:系统环境为Centos7.4 脚本如下: #!/bin/bash function checkroot(){ if [ $UID -ne 0 ] then echo "|------------

Shell脚本批量创建用户并随机生成密码

要求:批量创建10个系统账号oldboy01-oldboy10,并设置生成密码(密码不同). 实现脚本: #!/bin/bash #Question3 for i in $(seq -w 10) do         useradd -s /bin/bash oldboy$i         echo "password$i" | md5sum | tee -a passwd.txt | passwd --stdin  oldboy$i done 脚本执行效果: [[email pro

Linux系统编写shell脚本批量创建和删除用户

一.编写shell脚本批量添加用户 实现方法:判断用户是否存在,存在则返回错误提示,同时判断用户文件是否存在,不存在则退出 1.创建添加用户脚本 [[email protected] ~]# vim useradd.sh #!/bin/bashif [ $# -eq 0 ];then        echo "你没有输入任何文件!"        exit 1fi if [ ! -f $1 ];then        echo "输入有误!"        exit

CentOS7.3编译安装python3.6

CentOS7.3编译安装python3.6  一.前言  最近迷上了python,所以准备开始上手python.由于python2维护较少,python3必然是趋势了,所以我准备用python3.6学习python.CentOS7.3默认安装的是python2.7,所以我需要从官网上下载python3.6并编译安装python3.6,但是比较尴尬的是,CentOS的yum环境支持python2而不支持python3,所以需要通过一些小小的修改,才能在正常的使用python3.6的同时也能正常的

shell脚本-批量telnet

由于现网有时候要测试很多端口的连通性,所以就写了个小脚本,实现批量测试 将telnet成功的写入到telnet_alive.txt中,失败则写入telnet_die.txt中 #!/bin/bash#this script test UP to other host.#Iplist=/opt/script_test/iplist.dataPortnumber=7001for ip in $(cat iplist.data)do  (sleep 1;)|telnet  $ip $Portnumbe