这是代码,显示我认为是一个问题: # Debugging path problems with sudo — – hosts: webservers remote_user: root tasks: – name: echo path command: echo $PATH register: output changed_when: False – name: display root path output debug: "msg={{ output.stdout }}" # Now try as apache – name: echo path command: echo $PATH become: true become_user: apache become_method: sudo register: output […]
我可以用ssh成功连接到我的服务器。 不过,当我试图通过Ansible cli执行命令时,它失败了: ansible en2 -a "/sbin/reboot" -vvv Using /etc/ansible/ansible.cfg as config file <en2> ESTABLISH SSH CONNECTION FOR USER: None <en2> SSH: EXEC ssh -C -q -o ControlMaster=auto -o ControlPersist=60s -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o ConnectTimeout=10 -o ControlPath=/home/buzut/.ansible/cp/ansible-ssh-%h-%p-%r en2 '/bin/sh -c '"'"'( umask 77 && mkdir -p "` echo $HOME/.ansible/tmp/ansible-tmp-1470744750.87-182962282383475 `" && echo […]
我试图在Ansible中设置一个自动脚本来设置一个新的服务器,我使用ssh-copy-id将Ansible主服务器添加到新服务器的授权ssh密钥。 我创build了一个使用ssh-copy-id的脚本,但该命令正在询问新服务器的密码。 是否有可能在同一行中调用它的密码,以便我可以在脚本中自动执行它?
AWX AMI for EC2上的默认用户名/密码是什么? admin / password不起作用。
所以我有一组nginx服务器: [nginx_internal_servers] n01.local n02.local n03.local 我有一个预部署任务运行。 我以serial:1模式运行,我只希望这个预部署任务运行在除我以外的所有人。 目前我的任务看起来像这样,完全可以在所有的nginx服务器上运行: pre_tasks: – name: Take service out of nginx upstream pools local_action: command {{ playbook_dir }}/scripts/nginx-upstream-management.sh -s {{ item[0] }} -r {{ item[2] }} -g {{ item[1] }} with_nested: – groups['nginx_internal_servers'] – services_endpoints.keys() – ansible_all_ipv4_addresses|last 任何想法如何从列表groups['nginx_internal_servers']排除当前节点groups['nginx_internal_servers'] ?
刚开始使用Ansible时,我在客户端机器上build立了一个Asible用户,并从OpenSSL创build了一组密钥。 我以自己的账户运行Ansible。 我已经在Ansibleconfiguration中指定了用户和私钥文件。 我想让远程命令以这个用户和这个用户的身份运行,以执行需要提升的命令。 /etc/ansible/ansible.cfg private_key_file = /etc/ansible/pka/confman.crt remote_user = confman 像这样的命令在初始input密码之后不要求密码: ansible all -m ping 每次运行密码时都会出现以下提示: ansible all -m ping -b Enter passphrase for key '/etc/ansible/private_keys/confman.crt': (success) ansible all -m ping –sudo Enter passphrase for key '/etc/ansible/private_keys/confman.crt': (success) ansible all -a "cat /etc/redhat-release" Enter passphrase for key '/etc/ansible/private_keys/confman.crt': (success) 为什么? 有没有办法设置密码? 有没有更安全的方法? 我计划通过cron和其他自动化工具远程运行安全性,因为input密码不是一个选项。 作为上下文,我从来不需要SSH服务器之间的SSH,总是从Windows机器使用诸如腻子,RoyalTS和mRemoteNG等工具,所以我的SSH知识是…稀疏。 […]
编写一个手册来执行yum更新,然后从每个服务器获取一封电子邮件。 我希望电子邮件包含yum.log的更改内容。 IOW,我想要的结果是: grep [today's date] /var/log/yum.log 从每个服务器通过电子邮件发送。 我尝试使用shell:执行grep然后发送邮件: shell: grep '^`date +"%b %d"`' /var/log/yum.log | mail -s "updates applied to `hostname -s` today" [email protected] 它只是发一个空白的电子邮件。 也尝试使用邮件function,但我正在努力转储一个多行variables到消息的正文: – name: test result ignore_errors: yes shell: grep "`date '+%b %d'`" /var/log/messages register: updated – name: mail result mail: to: [email protected] subject: "updates applied to {{ ansible_hostname }} […]
我得到'味精:无法lockingapt独家操作'当试图安装一些依赖关系在一个使用apt的aptbook,与stream浪的用户。 我怀疑它告诉我这是因为它无法在运行任务时validationstream浪用户。 这是我正在使用的angular色声明。 – name: ruby installer hosts: all sudo: True sudo_user: vagrant roles: – ruby 这是失败的任务: – name: Install ruby building dependencies apt: name={{ item }} state=installed update_cache=yes with_items: – dependency 当删除“update_cache = yes”并重新运行剧本时,我得到:E:无法lockingpipe理目录(/ var / lib / dpkg /),你是root用户吗? 很明显,当用root运行它时,它工作得很好,但是我需要它在不同于root的用户下运行,因为一些ruby(rvm,rbenv特定的)任务。 在运行我的手册时,如何正确authenticationstream浪使用者? 有人能指出我正确的方向吗?
我试图收集一个MySQL集群的信息,然后在一些本地逻辑中使用。 我的麻烦是,如果我在远程主机上运行我的命令,我将无法访问这些结果 – name: get uuids for existing cluster nodes shell: mysql -N -B -u {{ db_user }} -p {{ db_user_password }} -e "SHOW GLOBAL STATUS LIKE 'wsrep_cluster_state_uuid';" | sed 's/\t/,/g' | cut -f2 -d',' register: maria_cluster_uuids 这给了我需要的数据,但我真正喜欢的是结果的组合列表/字典。 我可以尝试: – name: get uuids for existing cluster nodes run_once: true shell: mysql -N -B -u {{ […]
本文档介绍了如何使用Ansible中的copy模块复制文件和目录。 如何复制除一个之外的所有孩子? 讨论 这些选项不能说明如何完成。 由于父母包含超过100个孩子,因此单独复制所有孩子不是一种select。