django如何调用ansible(2023年最新分享)

导读:本篇文章首席CTO笔记来给大家介绍有关django如何调用ansible的相关内容,希望对大家有所帮助,一起来看看吧。

如何在django中使用ansible-playbook命令执行yaml 文件

一、安装

1、安装第三方epel源

centos 5的epel

rpm -ivh

rpm -ivh

17:01:30 # cat /etc/issue

CentOS release 6.5 (Final)

Kernel \r on an \m

由于是6版本所以安装6的epel

yum install ansible

如果需要自定义module或者想阅读源码、使用最新版本,可以去github里下载源码

git clone

17:22:08 # cd /etc/ansible/

root@ip-10-10-10-10:/etc/ansible

17:23:27 # ll

total 12

-rw-r--r-- 1 root root 5113 Dec 29 03:00 ansible.cfg

-rw-r--r-- 1 root root 965 Dec 29 03:00 hosts

其中ansible.cfg是配置文件,hosts是管理主机信息

17:24:44 # cat hosts

172.17.0.2:49154

172.17.0.4:49155

[zabbix]

172.17.0.2:49154

172.17.0.4:49155

[vpn]

172.17.0.10

16:20:57 # ansible 127* -m ping

SSH password:

127.0.0.1 | success {

"changed": false,

"ping": "pong"

}

root@ip-10-10-10-10:/etc/ansible

16:21:05 # ansible 172* -m ping

SSH password:

172.17.0.5 | success {

"changed": false,

"ping": "pong"

}

172.17.0.4 | success {

"changed": false,

"ping": "pong"

}

172.17.0.2 | success {

"changed": false,

"ping": "pong"

}

如果你有多台服务器的话,想并发运行,可以使用-f参数,默认是并发5

11:30:35 # ansible vpn -m shell -a "echo $TERM" -u test --private-key=denglei -K

SSH password:

sudo password [defaults to SSH password]:

172.17.0.10 | success | rc=0

xterm

11:30:44 # ansible vpn -m copy -a "src=/tmp/server dest=/tmp/server" -u test --private-key=denglei -K

SSH password:

sudo password [defaults to SSH password]:

172.17.0.10 | success {

"changed": true,

"dest": "/tmp/server",

"gid": 505,

"group": "test",

"md5sum": "e8b32bc4d7b564ac6075a1418ad8841e",

"mode": "0664",

"owner": "test",

"size": 7,

"src": "/home/test/.ansible/tmp/ansible-1402630447.45-253524136818424/source",

"state": "file",

"uid": 503

}

去客户端查看文件是否传输过来

11:34:57 # ansible vpn -m shell -a "ls -l /tmp/" -u test --private-key=denglei -K

SSH password:

sudo password [defaults to SSH password]:

172.17.0.10 | success | rc=0

total 76

-rw-r--r-- 1 root root 41692 May 21 13:02 config

-rw-r--r-- 1 root root 1228 Jun 12 18:24 install_pptpd_vpn.sh

-rw-rw-r-- 1 test test 7 Jun 13 19:33 server

-rw-r--r-- 1 root root 82 Jun 12 18:21 test.log

-rw-r--r-- 1 root root 290 Jun 12 18:21 test.sh

-rw-r--r-- 1 root root 2444 Apr 28 2012 vpn_centos6.sh

-rw------- 1 root root 727 Jun 10 18:21 yum_save_tx-2014-06-10-18-21UrqDAp.yumtx

-rw-rw-r-- 1 zabbix zabbix 3124 Jun 12 21:32 zabbix_agentd.log

-rw-rw-r-- 1 zabbix zabbix 5 Jun 12 21:32 zabbix_agentd.pid

11:35:09 # ansible vpn -m shell -a "cat /tmp/server" -u test --private-key=denglei -K

SSH password:

sudo password [defaults to SSH password]:

172.17.0.10 | success | rc=0

server

还有另外一个模块file,可以修改用户与权限

13:50:07 # ansible vpn -m shell -a "ls -l /tmp/server" -u test --private-key=denglei -K

SSH password:

sudo password [defaults to SSH password]:

172.17.0.10 | success | rc=0

-rw-rw-r-- 1 test test 7 Jun 13 19:33 /tmp/server

server文件是664权限,用户与组都是test

13:51:17 # ansible vpn -m file -a "dest=/tmp/server mode=755 owner=root group=root" -u test --private-key=denglei -K

SSH password:

sudo password [defaults to SSH password]:

172.17.0.10 | success {

"changed": true,

"gid": 0,

"group": "root",

"mode": "0755",

"owner": "root",

"path": "/tmp/server",

"size": 7,

"state": "file",

"uid": 0

}

root@ip-10-10-10-10:/etc/ansible

13:51:31 # ansible vpn -m shell -a "ls -l /tmp/server" -u test --private-key=denglei -K

SSH password:

sudo password [defaults to SSH password]:

172.17.0.10 | success | rc=0

-rwxr-xr-x 1 root root 7 Jun 13 19:33 /tmp/server

14:20:30 # ansible vpn -m yum -a "name=nmap state=installed" -u test --private-key=denglei -K

SSH password:

sudo password [defaults to SSH password]:

172.17.0.10 | success {

"changed": true,

"msg": "",

"rc": 0,

"results": [

"Loaded plugins: fastestmirror, security\nLoading mirror speeds from cached hostfile\n * epel: mirrors.hust.edu.cn\nSetting up Install Process\nResolving Dependencies\n-- Running transaction check\n--- Package nmap.x86_64 2:5.51-3.el6 will be installed\n-- Finished Dependency Resolution\n\nDependencies Resolved\n\n================================================================================\n Package Arch Version Repository Size\n================================================================================\nInstalling:\n nmap x86_64 2:5.51-3.el6 Base 2.7 M\n\nTransaction Summary\n================================================================================\nInstall 1 Package(s)\n\nTotal download size: 2.7 M\nInstalled size: 9.7 M\nDownloading Packages:\nRunning rpm_check_debug\nRunning Transaction Test\nTransaction Test Succeeded\nRunning Transaction\n\r Installing : 2:nmap-5.51-3.el6.x86_64 1/1 \n\r Verifying : 2:nmap-5.51-3.el6.x86_64 1/1 \n\nInstalled:\n nmap.x86_64 2:5.51-3.el6 \n\nComplete!\n"

]

}

三、playbook配置管理

A.进行一下shell模块操作,测试删除文件

先查看一下客户端的server-test是否存在

[root@puppet ansible]# ansible vpn -m shell -a "ls -l /tmp/server-test" -u test --private-key=/root/denglei -k

SSH password:

172.17.0.10 | success | rc=0

-rw-rw-r-- 1 test test 7 Jun 14 00:37 /tmp/server-test

然后写一个删除的playbook

[root@puppet ansible]# cat test.yml

---

- hosts: vpn

remote_user: test

tasks:

- name: delete /tmp/server-test

shell: rm -rf /tmp/server-test

[root@puppet ansible]# ansible-playbook test.yml --private-key=/root/denglei -k

[WARNING]: The version of gmp you have installed has a known issue regarding

timing vulnerabilities when used with pycrypto. If possible, you should update

it (ie. yum update gmp).

SSH password:

PLAY [vpn] ********************************************************************

GATHERING FACTS ***************************************************************

ok: [172.17.0.10]

TASK: [delete /tmp/server-test] ***********************************************

changed: [172.17.0.10]

PLAY RECAP ********************************************************************

172.17.0.10 : ok=2 changed=1 unreachable=0 failed=0

[root@puppet ansible]# ansible vpn -m shell -a "ls -l /tmp/server-test" -u test --private-key=/root/denglei -k

SSH password:

172.17.0.10 | FAILED | rc=2

ls: cannot access /tmp/server-test: No such file or directory

B.进行一下template模块操作,测试文件传输

[root@puppet ansible]# cat copy.yml

---

- hosts: vpn

remote_user: test

tasks:

- name: copy local server to client /tmp/server-test

template: src=/tmp/server dest=/tmp/server-test

[root@puppet ansible]# ansible-playbook copy.yml --private-key=/root/denglei -k

[WARNING]: The version of gmp you have installed has a known issue regarding

timing vulnerabilities when used with pycrypto. If possible, you should update

it (ie. yum update gmp).

SSH password:

PLAY [vpn] ********************************************************************

GATHERING FACTS ***************************************************************

ok: [172.17.0.10]

TASK: [copy local server to client /tmp/server-test] **************************

changed: [172.17.0.10]

PLAY RECAP ********************************************************************

172.17.0.10 : ok=2 changed=1 unreachable=0 failed=0

[root@puppet ansible]# ansible vpn -m shell -a "ls -l /tmp/server-test" -u test --private-key=/root/denglei -k

SSH password:

172.17.0.10 | success | rc=0

-rw-rw-r-- 1 test test 7 Jun 14 17:07 /tmp/server-test

C.使用service模块,测试一下服务重启

django如何调用ansible(2023年最新分享)  第1张

python——Django项目开发:配置项目/static/路径,调用css、img、js等静态文件

在Django项目开发中,不能像正常web开发一样通过 'imgs/bg.jpg' 访问本地静态文件,需要做一些配置,才能实现静态文件的访问。

一、首先在项目根路径下新建一个static文件夹,然后在static文件夹下可以新建相应的css、imgs、js等文件夹,用于存放css、img、js等静态文件。

二、项目配置

1、打开settings.py,在底部添加:

2、打开urls.py,在 urlpatterns 中添加:(注意,如果你在blog目录下也建立了urls.py,那么就得在blog/urls.py中做修改。别忘了import settings):

(不过我经过实测,不加这一个,也可以完成静态文件的访问)

3、在html模板最上面添加:

然后在需要的地方按照这个格式进行调用,如:

最后重新运行项目,img等本地静态文件就可以被django找到了,这时模板对应的页面就可以显示使用img等文件了。

初学者,求教django1.8 如何调用python3.4脚本的问题

下面来看下在python3.4中,如何与Linux交互的。 在python里面可以操作linux的命令有 1,os.system("cmd") 2,os.open("cmd") 3,spawn* 4,subprocess 在最新的python里,推荐使用subprocess来与shell通信

Django配置Celery执行异步和同步任务(tasks))

celery是一个基于python开发的简单、灵活且可靠的分布式任务队列框架,支持使用任务队列的方式在分布式的机器/进程/线程上执行任务调度。采用典型的生产者-消费者模型,主要由三部分组成:

比如系统上线前后台批量导入历史数据,发送短信、发送邮件等耗时的任务

1.安装RabbitMQ,这里我们使用RabbitMQ作为broker,安装完成后默认启动了,也不需要其他任何配置

Ubuntu linux安装

CentOS Linux 安装

苹果mac 安装需要配置

配置环境变量 (苹果用户)

启动rabbitmq-server

2.安装celery

3.celery用在django项目中,django项目目录结构(简化)如下

4.创建 oa/celery.py 主文件

5.在 oa/__init__.py 文件中增加如下内容,确保django启动的时候这个app能够被加载到

6.各应用创建tasks.py文件,这里为 users/tasks.py

7.views.py中引用使用这个tasks异步处理

8.启动celery

9.这样在调用post这个方法时,里边的add就可以异步处理了

定时任务的使用场景就很普遍了,比如我需要定时发送报告给老板~

1. oa/celery.py 文件添加如下配置以支持定时任务crontab

3.启动celery beat,celery启动了一个beat进程一直在不断的判断是否有任务需要执行

结语:以上就是首席CTO笔记为大家整理的关于django如何调用ansible的相关内容解答汇总了,希望对您有所帮助!如果解决了您的问题欢迎分享给更多关注此问题的朋友喔~

以上内容为新媒号(sinv.com.cn)为大家提供!新媒号,坚持更新大家所需的互联网后端知识。希望您喜欢!

版权申明:新媒号所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流,不声明或保证其内容的正确性,如发现本站有涉嫌抄袭侵权/违法违规的内容。请发送邮件至 k2#88.com(替换@) 举报,一经查实,本站将立刻删除。

(0)
上一篇 2023-09-23
下一篇 2023-09-23

相关推荐

发表回复

登录后才能评论