范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

PowerDNS可视化管理工具

  见字如面,大家好,我是小斐,这篇主要针对PowerDNS的管理做简单介绍。 背景
  PowerDNS日常管理使用命令行不太便捷 ,而且在公司内部, 可能还需要给其他运维或者研发人员开通添加域名管理权限 ,在此我推荐一套针对PDNS可视化UI管理工具--PowerDNS-Admin。
  可以结合 SAML / LDAP / Active Directory 用户认证 ,可以解决多人登录该域名管理系统的权限问题。 部署
  前文提到安装PowerDNS后,域名区域数据不在使用 bind文件格式 存储,而直接使用后端连接 MySQL数据库。
  已配置好相关数据库表格式,和数据库用户,在这在此示例下: # PowerDNS-Admin的数据库 不能使用PowerDNS的数据库 必须分开 # 到前文所说的主库中root登录mysql数据库 创建 powerdnsadmin 数据库  CREATE DATABASE `powerdnsadmin` CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; GRANT ALL PRIVILEGES ON `powerdnsadmin`.* TO "pdnsadminuser"@"%" IDENTIFIED BY "PowerDNS@Admin987"; FLUSH PRIVILEGES;安装
  安装方式:docker和docker-compose或本地化部署
  系统:Ubuntu 22.04.1 LTS
  本地化部署说明: # 安装构建 python 库所需的包 sudo apt install -y python3-dev git libsasl2-dev libldap2-dev libssl-dev libxml2-dev libxslt1-dev libxmlsec1-dev libffi-dev pkg-config apt-transport-https virtualenv build-essential curl  # 安装 Node.js curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash - && sudo apt-get install -y nodejs  # 安装 yarn 构建依赖文件 sudo curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list sudo apt update && sudo apt install yarn  # 检查源代码并创建 virtualenv 源代码放在/opt/web/powerdns-admin/目录下 git clone https://github.com/PowerDNS-Admin/PowerDNS-Admin.git /opt/web/powerdns-admin # 安装virtualenv包 创建virtualenv apt install python3.10-venv # 创建虚拟环境目录 venv虚拟环境目录名称 可自定义 python3 -mvenv ./venv 或者 virtualenv -p python3 venv  # 激活虚拟环境 source ./venv/bin/activate pip install --upgrade pip # 数据库依赖包安装 apt install libmysqlclient-dev pip3 install mysqlclient==2.0.1 # 安装python项目依赖包 pip install -r requirements.txt  # 配置文件位置 cp /opt/web/powerdns-admin/configs/development.py /opt/web/powerdns-admin/configs/production.py # 修改配置文件 在下面说明 vim /opt/web/powerdns-admin/configs/production.py
  配置环境启动文件: vim /opt/web/powerdns-admin/configs/production.py import os import urllib.parse basedir = os.path.abspath(os.path.dirname(__file__))  ### BASIC APP CONFIG ### SALT 随机加密字符串 SALT = "$2b$12$yLUMTIfl21FKJQpTkRQXCu" ### 安全密钥 可以用Python生成 python -c "import secrets; print(secrets.token_hex(16))" SECRET_KEY = "3f17176a67336b4112b524295cc0e48a" ### 监听地址 BIND_ADDRESS = "0.0.0.0" ### 监听端口 PORT = 9191 OFFLINE_MODE = False FILESYSTEM_SESSIONS_ENABLED = False SESSION_COOKIE_SAMESITE = "Lax" CSRF_COOKIE_HTTPONLY = True  ### DATABASE CONFIG ### 配置MySQL数据库的基本信息 SQLA_DB_USER = "pdnsadminuser" SQLA_DB_PASSWORD = "PowerDNS@Admin987" SQLA_DB_HOST = "192.168.10.120" SQLA_DB_NAME = "powerdnsadmin" SQLALCHEMY_TRACK_MODIFICATIONS = True  ### DATABASE - MySQL ### 启动MySQL数据库 SQLALCHEMY_DATABASE_URI = "mysql://{}:{}@{}/{}".format(     urllib.parse.quote_plus(SQLA_DB_USER),     urllib.parse.quote_plus(SQLA_DB_PASSWORD),     SQLA_DB_HOST,     SQLA_DB_NAME )  ### DATABASE - SQLite ### SQLite数据库注释关闭 #SQLALCHEMY_DATABASE_URI = "sqlite:///" + os.path.join(basedir, "pdns.db")  SAML_ENABLED = False SAML_ASSERTION_ENCRYPTED = True
  手动启动: # 切换到目录 /opt/web/powerdns-admin/ source ./venv/bin/activate  # 导入启动配置文件 export FLASK_CONF=../configs/production.py # 数据库表格式生成 export FLASK_APP=powerdnsadmin/__init__.py flask db upgrade  # yarn 包管理器安裝一些 JavaScript 依赖项以及为 PowerDNS-Admin 生成静态文件 yarn install --pure-lockfile flask assets build  # 前台运行 ./run.py  # 退出虚拟环境 deactivate
  到此已把环境准备好,包括相关数据库配置和应用程序配置,可以直接启动。
  但是在实际生成环境中,前面肯定还是需要Web服务器,比如nginx,但是Python应用程序如何和Web服务器进行交互呢,故需要一套WSGI容器链接Web服务器和Python应用程序,如下图:
  这里将采用Nginx+Gunicorn,由于PowerDNS-Admin是基于Flask框架实现的,同时把应用服务器的启停注册为systemd管理。 # flask virtualenv 中安装了 gunicorn 切换到venv环境下 cd /opt/web/powerdns-admin/ source ./venv/bin/activate pip install gunicorn
  配置系统服务: # 创建运行服务的系统用户和组 sudo groupadd powerdnsadmin # --system 创建一个没有登录shell和密码的用户,适用于运行系统服务 sudo useradd --system -g powerdnsadmin powerdnsadmin # 授权新用户应用程序目录权限 chown -R powerdnsadmin:powerdnsadmin /opt/web/powerdns-admin  # 创建系统用户 sudo vim /etc/systemd/system/powerdns-admin.service  [Unit] Description=PowerDNS-Admin Requires=powerdns-admin.socket After=network.target  [Service] PIDFile=/run/powerdns-admin/pid User=powerdnsadmin Group=powerdnsadmin WorkingDirectory=/opt/web/powerdns-admin Environment="FLASK_CONF=../configs/production.py" ExecStartPre=+mkdir -p /run/powerdns-admin/ ExecStartPre=+chown pdns:pdns -R /run/powerdns-admin/ ExecStart=/opt/web/powerdns-admin/venv/bin/gunicorn --pid /run/powerdns-admin/pid --bind unix:/run/powerdns-admin/socket "powerdnsadmin:create_app()" ExecReload=/bin/kill -s HUP $MAINPID ExecStop=/bin/kill -s TERM $MAINPID PrivateTmp=true  [Install] WantedBy=multi-user.target
  环境说明: Environment="FLASK_CONF=../configs/production.py" ,这里是基于Python的运行环境venv;由于实际代码在 /opt/web/powerdns-admin/powerdns-admin/ 中,故启动配置文件写相对路径放置在/opt/web/powerdns-admin/configs中,故配置文件环境变量设置相对路径: ../configs/production.py
  新建套接字单元配置: powerdns-admin.socket # 套接字单元配置:powerdns-admin.socket # 以 ".socket" 为后缀的单元文件, 封装了一个用于进程间通信的套接字(socket)或管道(FIFO), 以支持基于套接字的启动。 sudo vim /etc/systemd/system/powerdns-admin.socket  [Unit] Description=PowerDNS-Admin socket  [Socket] ListenStream=/run/powerdns-admin/socket  [Install] WantedBy=sockets.target
  新建配置文件:sudo vim /etc/tmpfiles.d/powerdns-admin.conf # powerdns-admin.conf 必须新建 /run/powerdns-admin/ 自动创建并授权正确权限 sudo vim /etc/tmpfiles.d/powerdns-admin.conf  d /run/powerdns-admin 0755 powerdnsadmin powerdnsadmin -
  启动: sudo systemctl daemon-reload sudo systemctl start powerdns-admin.socket sudo systemctl enable powerdns-admin.socket  # 启动服务 sudo systemctl start powerdns-admin.service sudo systemctl enable powerdns-admin.service反向代理配置
  安装nginx # 安装nginx apt install nginx  # 配置 80端口 vim /etc/nginx/conf.d/pdns.conf  server {         listen                  *:80; 	server_name             192.168.10.200;         index                   index.html index.htm; 	access_log              /var/log/nginx/powerdns-admin.local.access.log combined;         error_log               /var/log/nginx/error_powerdnsadmin.log error;          client_max_body_size            10m;         client_body_buffer_size         128k;         proxy_redirect                  off;         proxy_connect_timeout           90;         proxy_send_timeout              90;         proxy_read_timeout              90;         proxy_buffers                   32 4k;         proxy_buffer_size               8k;         proxy_set_header                Host $http_host;         proxy_set_header                X-Scheme $scheme;         proxy_set_header                X-Real-IP $remote_addr;         proxy_set_header                X-Forwarded-For $proxy_add_x_forwarded_for;         proxy_set_header                X-Forwarded-Proto $scheme;         proxy_headers_hash_bucket_size  64; 	 	location ~ ^/static/ {     		include  /etc/nginx/mime.types;     		root /opt/web/powerdns-admin/powerdnsadmin;      	location ~* .(jpg|jpeg|png|gif)$ {       		expires 365d;     	}      	location ~* ^.+.(css|js)$ {       		expires 7d;     	}   	}    	location / {     		proxy_pass            http://unix:/run/powerdns-admin/socket;     		proxy_read_timeout    120;     		proxy_connect_timeout 120;     		proxy_redirect        off;   	}  }
  如果需要443域名并证书加密访问: server {         listen                  80;         server_name             pdns.itkmi.net;         return 301 https://$http_host$request_uri; }  server {         listen                  443 ssl http2;         server_name              pdns.itkmi.net;         index                   index.html index.htm;         error_log               /var/log/nginx/error_powerdnsadmin.log error;         access_log              off;          ssl_certificate                 /etc/letsencrypt/live/pdns.hwdomain.io/fullchain.pem;         ssl_certificate_key             /etc/letsencrypt/live/pdns.hwdomain.io/privkey.pem;         #ssl_dhparam                     path_to_your_dhparam.pem;         ssl_prefer_server_ciphers       on;         ssl_ciphers                     "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH";         ssl_session_cache               shared:SSL:10m;          client_max_body_size            10m;         client_body_buffer_size         128k;         proxy_redirect                  off;         proxy_connect_timeout           90;         proxy_send_timeout              90;         proxy_read_timeout              90;         proxy_buffers                   32 4k;         proxy_buffer_size               8k;         proxy_set_header                Host $http_host;         proxy_set_header                X-Scheme $scheme;         proxy_set_header                X-Real-IP $remote_addr;         proxy_set_header                X-Forwarded-For $proxy_add_x_forwarded_for;         proxy_set_header                X-Forwarded-Proto $scheme;         proxy_headers_hash_bucket_size  64;          location ~ ^/static/ {                 include        /etc/nginx/mime.types;                 root            /opt/powerdns-admin/powerdnsadmin;                 location        ~* .(jpg|jpeg|png|gif)$ { expires 365d; }                 location        ~* ^.+.(css|js)$ { expires 7d; }         }          location ~ ^/upload/ {                 include        /etc/nginx/mime.types;                 root            /opt/powerdns-admin;                 location        ~* .(jpg|jpeg|png|gif)$ { expires 365d; }                 location        ~* ^.+.(css|js)$ { expires 7d; }         }          location / {                 proxy_pass              http://unix:/run/powerdns-admin/socket;                 proxy_read_timeout      120;                 proxy_connect_timeout   120;                 proxy_redirect          http:// $scheme://;         } }
  至此完成PowerDNS-Admin的搭建,打开PowerDNS-Admin服务: 先注册用户,第一个用户将处于管理员角色。 第一次登录时,将被重定向到设置页面以配置PDNS API信息。
  我这里是80端口和IP访问打开的:http://192.168.10.200
  ​
  单击:Create an account账户,创建新账户,这第一个账户就是默认管理员账户。
  ​
  你现在应该获得 PowerDNS-Admin 仪表板。 PowerDNS-Admin 正在运行,但仍未连接到 PowerDNS 服务器。
  要使用 PowerDNS-Admin 设置 PowerDNS 服务器,你必须将通过 PowerDNS 服务器配置的 API 密钥添加到 PowerDNS-Admin。
  这里需要修改下 PowerDNS 服务器的配置文件: # 启用webserver webserver=yes # webserver监听地址 从127.0.0.1改为0.0.0.0 webserver-address=0.0.0.0 # 默认任意地址都可以访问 实际环境建议限制下 webserver-allow-from=0.0.0.0/0
  ​
  添加域名:
  ​
  到此就完成PowerDNS-Admin的安装和配置, 后续讲解下域名记录添加和解析相关问题。

日本美女网红体验恒河洗澡,喝老鼠味河水上岸就病倒Megu是个来自日本的旅行博主,她长期在印度旅行,经常拍一些vlog,是一枚小网红。最近,她上传的一段视频在日本甚至中国都引起了强烈关注她想入乡随俗在恒河里洗澡,还喝了恒河水,结局11月11日收评2原因导致A股反弹畏首畏尾!1利空引发医药股崩盘本周最后一个交易日,A股一扫阴霾出现了强势井喷!但是对比昨晚美股以及外汇市场的表现来看,今天的A股只能说是中规中矩。我们先回看一下昨晚到今天的外盘表现,在美国10月CPI数据低于预北京现代引领混动科技新趋势,启动2025向新计划据悉,自从1999年起,现代汽车便以FIFA世界杯官方赞助商的身份积极活动在体育领域。今年4月现代汽车宣布正式成为2022FIFA世界杯的可持续发展合作伙伴与官方赞助商,以建立循环飞天茅台11月11号,最新行情价格飞天茅台酒建议零售价为1499元瓶但由于供需问题导致价格双轨市场行情有所溢价品名11。9日11。10日涨跌2022原箱飞天2990hr3000hr涨102021原箱飞天3040hr今日酒价飞天茅台11月11日最新行情行情价茅台酒商之间互相调货价回收价茅台散瓶价浮动050左右,原箱价浮动50150左右原箱价指未拆箱的茅台,适合收藏或投资批价零售价市场行情价运营仓储物流合理利润根据京东防范黄牛的相北京十大绝美古村镇,徒步打卡自然氧吧(上)提及古村镇,很多人会联想到南方的乌镇周庄同里南浔古镇诚然南方古镇众多,但在北京也有很多这样的古村镇。古村镇,通常是指拥有上百年的历史,或因商业河运,或因军事文化原因而聚合,至今仍保乡村振兴机遇下,北京周边除民宿还有什么值得期待?提到发展乡村旅游的热土,北京的郊区一定可以上榜。今年十一黄金周期间,一趟京郊游的成本价贵过疫情前的欧洲游的玩笑话成为衡量京郊旅游市场火爆程度的生动比喻。这其中,京郊民宿市场的高价现前10月104家国企通过北京产权交易所完成混改募集社会资本565。29亿元视频加载中中证网声明凡本网注明来源中国证券报。中证网的所有作品,版权均属于中国证券报中证网,中国证券报。中证网与作品作者联合声明,任何组织未经中国证券报。中证网以及作者书面授权不得骇人伤痕揭露的可怕历史北京猿人遭入侵,沦为食物后被灭绝鲁迅笔下曾写过一个人吃人的社会,以吃人的幻想,来隐喻封建文化的毒害。吃人是鲁迅对封建社会的批判虽然鲁迅笔下的吃人只是幻想,但是在远古时期,有可能真正存在一个人吃人的社会!考古学家在福布斯胡润排行榜怎么来的?放榜啦!看看有你不?据福布斯网站消息,11月10日,福布斯发布2022中国内地富豪榜。农夫山泉董事长钟睒睒今年仍为榜首字节跳动创始人张一鸣位居榜单第二位,其财富为495亿美元,较去钢市简评周五全线飘红钢市迎来重大利好行情回顾今日钢市迎来红色周五,多个钢种小幅反弹行情。截至收盘,螺纹钢主力合约收3637,较上一个交易日涨89个点热卷主力合约收3720,涨77个点焦煤主力合约收2126。5,涨75
新车蓝色饰条改为备选,新款宝马iX3上市,售39。99万元起文懂车帝原创陈旭明图为2022款宝马iX3领先型懂车帝原创产品近日,懂车帝从宝马汽车获悉,新款宝马iX3上市,推出领先型和创领型,售价区间为39。9943。99万元,车辆的整体售价TA若鲍文再代表英格兰出场,西汉姆联需支付100万镑浮动费用直播吧9月19日讯据Theathletic报道,尽管已经将赫尔城出售,但赫尔城前老板阿拉姆家族可能会在出售鲍文一事上再次获得100万镑收入。如果鲍文再次为英格兰国家队出场的话,西汉中国这十年系列主题新闻发布我国守住了18亿亩耕地保护红线新华社北京9月19日电(记者王立彬)党的十八大以来,习近平总书记多次对耕地保护工作作出重要指示批示,强调要像保护大熊猫一样保护耕地。十年来,我国坚持并落实最严格的耕地保护制度,严格对贵阳重大事故个人感觉很疑惑此次涉事车辆系抗疫转运征用车辆,该车于9月18日0时10分从云岩区接送涉疫隔离人员前往黔南州荔波县隔离酒店进行集中隔离,此次事故中的车辆为什么要在凌晨接送居民,任何一个正常人在凌晨阴毛有什么用?要不要刮掉?由黑变白,意味着什么?男女都需了解23岁的王女士因为感觉阴毛生长会不舒服,并且如果生长浓密还将打结,因此每次阴毛长出后就会刮掉。这次她也是在刮完阴毛后去医院做婚前检查,医生看到后表示,如果没有病理情况,是不建议刮掉各国元首齐聚女王葬礼!第一夫人们都好精致,布里吉特戴礼帽太美英国女王的葬礼让人感受到了什么叫做壮观,2000多人出席了女王的葬礼,而各国元首们,各大王室国王王后,在女王的葬礼上非常吸睛。一查尔斯国王悲伤落泪73岁才当上国王的查尔斯送别女王最前英系立委骂蔡英文救灾政治学连演都懒让她丢分据台媒报道演都不演?18日下午2时44分台东县池上乡发生里氏规模6。9地震,但桃园市地震仅3级竟造成八德国民运动中心羽球馆天花板整面崩塌。前立委郭正亮19日在正常发挥节目以前羽球协张天爱穿吊带街头买菜!瘦出排骨胸皮肤超白,弯腰捂胸口防止走光近日,有网友晒出在街头偶遇张天爱穿吊带买菜的视频,引起网友热议。通过视频发现,当天天空下了一些小雨,张天爱撑着透明雨伞走在街头,但一直都有摄影工作人员跟着,应该是在录制某节目。镜头马斯克怒了!下令特斯拉法务部对假人儿童撞击视频全网删除邓思邈发自副驾寺智能车参考公众号AI4Auto马斯克这回真的很生气,要特斯拉法务追责到底。因为一个1分钟都不到的视频,歪曲了特斯拉的自动驾驶技术水平。而且还伤害了特斯拉的商业利益,车晓厉害之处是气质把握得很棒,排骨胸看似瘦过头,穿衣却很高级头条创作挑战赛人人都羡慕超模们的纸片人身材,但是一旦走下镁光灯照耀的T台,在日常生活中大家反而会发现这种过于纤薄的纸片人身材很难驾驭,稍有不慎就会让人感觉太瘦没有气场。当然,无论是入秋后,排骨和它一块炖汤!营养补身体,餐前来一碗,胜过良药方老话说饭前饭后一碗汤,胜过良药方,餐前的一碗汤水,可以有润肠好处,还可以帮助人体产生饱腹感,减少对主食的摄入,有减肥瘦身的作用。饭后一碗汤,则有化食助消化的作用,都是人体所需要的。