尝试使用 apt 在 playbook 中安装某些依赖项时,我收到“msg:无法锁定 apt 以进行独占操作”,而 vagrant 用户。我怀疑它告诉我这个是因为它在运行任务时无法验证 vagrant 用户。
这是我正在使用的角色声明。
- name: ruby installer
hosts: all
sudo: True
sudo_user: vagrant
roles:
- ruby
Run Code Online (Sandbox Code Playgroud)
这是失败的任务:
- name: Install ruby building dependencies
apt: name={{ item }}
state=installed
update_cache=yes
with_items:
- dependency
Run Code Online (Sandbox Code Playgroud)
当删除“update_cache=yes”并重新运行剧本时,我得到:E:无法锁定管理目录(/var/lib/dpkg/),你是 root 吗?
显然,当用 root 运行它时它工作得很好,但由于一些 ruby(rvm,rbenv 特定)任务,我需要它在不同的用户下运行,而不是 root。
运行我的剧本时如何正确验证流浪用户?有人可以指出我正确的方向吗?
我想为 apache 服务器编写一个配置,它应该适用于 apache-2.2 和 -2.4 而无需更改。由于 v2.4 中有很多必须加载的新模块,以及一些更改的指令,我需要一些条件语句。我想要的是类似的东西
<If ApacheVersion >= 2.4>
LoadModule mod_only_in_2.4.so
</If>
Run Code Online (Sandbox Code Playgroud)
但我还没有找到正确的表达方式。有人可以指出我正确的方向吗?
澄清我的动机:我正在开发一个服务器,我希望能够将其复制到服务器上并在没有进一步依赖主机的配置的情况下运行。而且由于机器可以有任一版本的 apache,我想要一个在这两种情况下都可以使用的配置。
有没有办法配置 openssl,以便在未指定 -CAfile 选项的情况下运行 s_client 命令时使用一些默认 CA 文件(例如/etc/ssl/certs/ca-certificates.crt)?
我的 postfix 安装设置为将所有电子邮件转发到example.com我的其他邮件服务器(位于 )mail.example.net。这对于所有地址都适用,除了!@example.com——服务器在日志中example.com吐出并发送给客户端,Illegal address syntax from501 5.1.3 Bad recipient address syntax
我如何告诉 postfix!@example.com也进行转发?维基百科说这!对本地部分有效。
我的配置如下:
alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
append_dot_mydomain = no
biff = no
config_directory = /etc/postfix
inet_interfaces = all
mailbox_size_limit = 0
mydestination = mail.example.com, localhost
relay_domains = example.com
myhostname = mail.example.com
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 10.10.10.10/32
myorigin = /etc/mailname
readme_directory = no
recipient_delimiter = +
relayhost = …Run Code Online (Sandbox Code Playgroud) 我将我的网络服务器配置为使用Strict Transport Security (HSTS)。
我或多或少使用了本手册中的配置。
但是,如果我在Qualys SSL LABS上运行测试,我会在 SSL 报告中得到以下信息:
为什么报告说它不会为这些浏览器做 HSTS 预加载:
不在:Chrome Edge Firefox IE Tor
我怎样才能改变这个?我在另一个网站上看到了这个,所以应该是可能的:
我有一个新的 Windows Server 2012 Azure 虚拟机。在我尝试从外部访问之前,通过 RD 一切正常。我无法访问 SQL Server 服务(我尝试了 1 小时后放弃了一切,认为我搞砸了 SQL Server 服务)。后来我发现连web端口(80)也不行!
这是我的防火墙状态和网络监视器(您可以看到端口 80 和 1433 被允许且不受限制):
我试图 telnet 到 80 或 1433,但都不起作用。但是,将相同 IP 地址的 telnet telnet 到端口 3389 可以工作。错误信息是:
无法在端口 1433 上打开与主机的连接:连接失败
有什么我需要做的配置吗?
注意:我已经在 IIS 中添加了一个网站,同时绑定到域和虚拟机 IP 地址,但是访问两者都失败了,没有任何效果。
我正在尝试使用特定的配置文件作为 Ubuntu 14.04 上的用户进程启动 nginx。但是我一开始就被阻止了:
$ nginx -c nginx.conf
nginx: [alert] could not open error log file: open() "/var/log/nginx/error.log" failed (13: Permission denied)
2017/03/30 01:03:46 [emerg] 21805#21805: open() "/usr/share/nginx/nginx.conf" failed (2: No such file or directory)
Run Code Online (Sandbox Code Playgroud)
似乎继续尝试打开默认配置和其他文件。我看到 nginx 是使用以下选项构建的:
$ nginx -V
nginx version: nginx/1.10.1
built with OpenSSL 1.0.1f 6 Jan 2014
TLS SNI support enabled
configure arguments: --with-cc-opt='-g -O2 -fPIE -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2' --with-ld-opt='-Wl,-Bsymbolic-functions -fPIE -pie -Wl,-z,relro -Wl,-z,now' --prefix=/usr/share/nginx --conf-path=/etc/nginx/nginx.conf --http-log-path=/var/log/nginx/access.log --error-log-path=/var/log/nginx/error.log --lock-path=/var/lock/nginx.lock --pid-path=/run/nginx.pid --http-client-body-temp-path=/var/lib/nginx/body --http-fastcgi-temp-path=/var/lib/nginx/fastcgi --http-proxy-temp-path=/var/lib/nginx/proxy …Run Code Online (Sandbox Code Playgroud) 我不明白为什么禁止进入 PHPmyadmin ( http://my_ip/phpmyadmin)。这是我为安装它所做的:
在纯 Ubuntu 16.04 机器(服务器、xenial)上,我安装了带有 php-fpm 7.0 的 LEMP。Nginx conf 是默认的:
apt-get update -y
apt-get upgrade nginx mysql-server php-fpm php-mysql -y
Run Code Online (Sandbox Code Playgroud)
然后我安装了 PMA 并允许它:
DEBIAN_FRONTEND=noninteractive apt-get upgrade phpmyadmin php-mbstring php-mcrypt -y
ln -s /usr/share/phpmyadmin/ /var/www/html/
chown -R www-data:www-data /usr/share/phpmyadmin/ /var/www/html
chmod -R a-x,a=rX,u+w /usr/share/phpmyadmin/ /var/www/html
Run Code Online (Sandbox Code Playgroud)
我真的无法理解错误日志中有什么问题:
“/var/www/html/phpmyadmin/”的目录索引被禁止
什么可能导致 PMA 被禁止?
我删除了符号链接并在http块中添加了这个 confnginx.conf并重新启动了服务器,但没有看到任何变化:
server {
location /phpmyadmin {
index index.php index.html …Run Code Online (Sandbox Code Playgroud) [本机为192.168.80.125]
允许所有基本访问的普通 SSH 规则:
AllowUsers user1
PubkeyAuthentication yes
PasswordAuthentication no
AllowTcpForwarding yes
UsePAM no
Run Code Online (Sandbox Code Playgroud)
匹配组测试
AllowUsers user2@IP1 user2@IP2 user2@IP3 user2@IP4
PubkeyAuthentication yes
PasswordAuthentication yes
AllowTcpForwarding yes
PermitOpen 192.168.80.100:80
PermitOpen 192.168.80.125:443
AllowAgentForwarding no
Run Code Online (Sandbox Code Playgroud)
当我以 user2 身份从 IP1 连接到 sshd 时,我可以使用 PuTTY 打开隧道:
本地S:IP1:8080 远程D:192.168.80.100:80
本地源:IP1:8443 远程目标:192.168.80.125:443
我打开浏览器并浏览到 localhost:8080 我得到连接重置。我打开浏览器并浏览到 localhost:8443 我得到连接重置。
我检查 SSH 日志:
192.168.80.125 authlog: Received request to connect to host 192.168.80.100 port 80, but the request was denied.
192.168.80.125 authlog: Received request to connect to host 192.168.80.125 port 443, …Run Code Online (Sandbox Code Playgroud) 我发现MySQL的CLI这美妙的输出格式在这里。命令是mysql> pager less -SFX. 我希望这是我的默认设置,而不必每次启动 MySQL CLI 时都输入命令。我该如何将其设置为默认值?
configuration ×10
ubuntu ×3
nginx ×2
web-server ×2
ansible ×1
apache-2.2 ×1
apache-2.4 ×1
azure ×1
conditional ×1
firewall ×1
forwarding ×1
mysql ×1
openssl ×1
permissions ×1
php ×1
phpmyadmin ×1
port ×1
postfix ×1
python ×1
security ×1
ssh ×1
ssl ×1
ubuntu-14.04 ×1