打着招呼。 我需要删除一组机器上的几个目录。 我似乎无法得到文件模块来做我的出价。 下面的模块将运行没有错误,不会删除任何东西。 我不想删除/select。 – hosts: [dummies] tasks: – name: destroy these paths! file: path=/opt{{ item }} state=absent recurse=no with_items: – "foo" – "bar" – "baz"
我想创build一个可靠的angular色来添加用户与ssh_keys ├── ansible.cfg ├── hosts ├── playbooks │ └── add_user.yml └── roles └── add-user ├── files │ ├── ansible.pub │ ├── dhirendra.pub │ ├── nitigyas.pub │ └── vinayaks.pub ├── tasks │ └── main.yml └── vars └── main.yml 任务/ main.yml文件是: — – name: AddUser in the server user: name: ansible password: $6$sHQAZJ32E$ujHauabN7ZTbOQ/zhT5899EIaFErOecXYvTEyhekexy4dydsAXTGdUpaB8M4fQf2UGpZgX/Zg2Uv6areeuv/r0 comment: Ansible Configuration Mgmt […]
devops工具生态系统令我感到困惑。 服务器编排/pipe理空间中的每个人都在使用自己的专有格式,而不是使用shell脚本。 Ansible有他们的YAML游戏手册,Puppet有它的类/graphics语言,salt像ansible有某种YAML格式,厨师是一个embedded的Ruby DSL。 在所有这些方法中,我最喜欢厨师,因为它做的是最简单的事情。 所以我想一个好处是当你使用这些工具之一时,对机群的可视性更好,但是这与实际的configuration和configuration组件是正交的。 我不明白为什么每个人都试图用YAML来重新发明shell脚本,因为往往不是ssh -t就是我需要做的事情,以及一些shell脚本的库。 这些脚本通常打包为自包含的tar文件,并且足够小而且足够简单,可以根据需要进行混合和匹配。 除了bash ,它们具有零依赖关系,几乎可以在任何地方工作。 那么为什么这样一个简单的解决scheme不足以胜任真人,傀儡,厨师等呢? 通过用其他格式replacebash脚本,所有这些解决scheme能获得什么?
我使用Ansiblepipe理一组Windows服务器,我的控制机器运行CentOS 7.1。 我已经build立了我的/etc/krb5.conf文件来validation域控制器,所以我可以使用一个域帐户来validation我的所有主机。 这工作正常 – 只要我手动运行kinit [email protected]第一。 问题是,一旦我重新启动我的控制机器,Kerberos票证过期,并且任何试图运行Ansible针对Windows服务器导致标准的“没有Kerberos凭据”错误,直到我再次运行kinit 。 是否有build议的做法: 在系统重启的情况下持久保存Kerberos票据 在启动时对特定域进行身份validation? 编辑:这是我的(修改)输出到realm discover : [root@server ~]# realm discover my.domain.com type: kerberos realm-name: MY.DOMAIN.COM domain-name: my.domain.com configured: kerberos-member server-software: active-directory client-software: sssd required-package: oddjob required-package: oddjob-mkhomedir required-package: sssd required-package: adcli required-package: samba-common login-formats: %[email protected] login-policy: allow-realm-logins
这真的很慢,需要几十秒钟: – name: Install bower.json for the plugins. sudo: no become_user: www-data bower: path=/var/www/mortgage-calculator/src/mortgage-plugin-ember-admin 相比之下,如果我chdir到相同的位置,并运行bower install而不是通过command大约需要0.8s : – name: Install bower.json for the plugins. sudo: no become_user: www-data command: bower install chdir=/var/www/mortgage-calculator/src/mortgage-plugin-ember-admin 我可以使本地缓冲模块执行得如此快吗?
我正在尝试在使用Ansible的Virtual Box上安装Ubuntu vivit上的Centos-7。 我经历了大量的configuration,并在失败之前设置了下面的消息。 我search了各种错误types,但没有看到与我的一个,所以我想我会来到这里。 谁能告诉我错误是什么意思? 我怀疑这是没有安装PHP的依赖,但我不是为什么他们失败,以及如何纠正这一点。 谢谢 PLAY [all] ******************************************************************** GATHERING FACTS *************************************************************** ok: [default] TASK: [common | check if EPEL is installed] *********************************** failed: [default] => {"changed": false, "cmd": "/usr/bin/rpmquery epel-release", "delta": "0:00:00.036192", "end": "2015-09-30 19:40:02.697466", "rc": 1, "start": "2015-09-30 19:40:02.661274", "stdout_lines": ["package epel-release is not installed"]} stdout: package epel-release is not installed […]
我有一个反复出现的问题与我负责的应用程序/服务器之一。 我基本上有一个VPS,所有的堆栈都需要运行我的应用程序(nginx + postgresql + ruby + ruby on rails + passenger)维护。 有一个问题,服务器已经像每两天冻结一次。 它没有收到端口80或22上的任何传入连接(所以我甚至无法使用ssh连接到它)。 唯一的解决办法是重新启动它。 我忽略了这个问题,因为我确定这台机器有问题,直接转到新机器上就可以解决问题。 我最近改变了一下我的可靠的手册,我的应用程序被分成3个独立的服务器。 我确信这个问题不会发生,但是,不幸的是,这个问题再次出现,更糟糕的是,这三台机器都是一台机器! 我对所有这三台服务器的基本服务器configuration使用相同的angular色,但没有任何可能是危险的。 只是基本的东西,如用户创build,生成SSH密钥等等。无论如何,还有更多 – 现在,对于新的三台服务器,即使重新启动无法解决这个问题,从Azure面板重新启动后,我仍然无法连接80或22端口上的三台机器中的任何一台。 我显然不能debugging那些新服务器的日志,因为他们是无法访问,但我仍然有旧的运行,所以它可能会有帮助,检查是什么造成这些冻结? 我只是无法find日志中的任何东西(或者我不知道什么,我应该在哪里寻找任何线索)。 服务器使用Ubuntu 14.04
我为一个python应用程序安装了一些服务器,其中一些是CentOS,另一些是debian。 有没有一个方便的方法来find一个程序,可以安装在不同的地方,而不诉诸下面的例子,并没有重复相同的命令几次(不同的when:子句)? 例如,在CentOS上是/sbin/nologin ,在debian上是/usr/sbin/nologin 。 我一直在试图find并注册一个variables的path,但似乎很愚蠢: – name: Find nologin command: ls -1 /usr/sbin/nologin ignore_errors: yes register: nologin_command – name: Find nologin command: ls -1 /sbin/nologin register: nologin_command when: nologin_command.stdout == "" # nologin_command.stdout will be the path to one or the other 在我的具体情况下,我正在尝试为pip模块find正确的virtualenv_command 。 我必须是具体的,否则我会得到错误的(即对于Python 2)或不存在的path。 我的系统将有一个pyvenv,pyvenv-3.4,virtualenv或virtualenv-3.4。 至less有一个会出现,但根据操作系统和python的安装方式,它们在不同的地方或根本不存在。
处理本地和远程用户的最佳做法是什么? 我目前的理解是,我们有一个本地和远程机器,在远程机器上有一个默认的本地用户和默认的pipe理员用户。 在标准情况下,joe将生成一个SSH密钥对,并将其公钥复制到远程的“.ssh / authorised_keys”中。 localhost remotehost ========= ========== // sudo root user user:joe user:admin passsword:xxx password:admin123 .ssh/id_rsa.pub ———————————-> ./ssh/authorised_keys 我正确地说,标准ansible.cfg设置将是 [defaults] ansible_user=joe ansible_ssh_user=admin private_key_file=/home/pauloconnell/.ssh/id_rsa.pem 我碰到这张票,build议创build一个可靠的特定用户运行远程命令https://stackoverflow.com/questions/29392369/ansible-ssh-private-key-in-source-control 同样,图片看起来像是在本地计算机上创build了一个新的“ansible_ssh_user”,将其密码保存到一个文件库中,然后在远程服务器上创build具有正确组权限的相同用户 localhost remotehost ========= ========== // sudo root user user:joe user:admin passsword:xxx password:admin123 ~~.ssh/id_rsa.pub ———————————-> ./ssh/authorised_keys~~ user:ansible_ssh_user user:ansible_ssh_user .ssh/id_rsa.pub ———————————-> ./ssh/authorised_keys 我想确认在这种情况下configuration文件将如何改变? [defaults] ansible_user=ansible_ssh_user ansible_ssh_user=ansible_ssh_user private_key_file=??
我正在使用跳转框(服务器A)访问服务器B. 根据这里的能力文件,我有以下几点: ansible_ssh_common_args: '-o ProxyCommand="ssh -W %h:%p -q ec2-user@AAAA"' 服务器B是,让我们说:10.0.2.54 我运行: ansible-playbook staging.yml -i staging_hosts –private-key=~/.ssh/mykeys.pem -vvvv 结果是: fatal: [10.0.2.54]: UNREACHABLE! => {"changed": false, "msg": "All items completed", "results": [{"item": ["openssl"], "msg": "ERROR! SSH encountered an unknown error. The output was:\nOpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011\ndebug1: Reading configuration data /etc/ssh_config\r\ndebug1: /etc/ssh_config line 20: Applying options […]