Mac OS X에서 Ansible 호스트 파일을 저장할 위치
Vagrantbox를 프로비저닝하기 위해 Ansible을 시작하려고하지만 호스트 파일을 처리하는 방법을 알 수 없습니다.
문서에 따르면이 파일은에 저장되어야 /etc/ansible/hosts
하지만 내 시스템 (Mac OS X)에서 찾을 수 없습니다. 또한 host.ini
방랑 파일에 인접한 문서 루트에 있는 파일의 예를 보았습니다 .
그래서 내 질문은 단일 방랑 상자를 설정하기 위해 호스트 파일을 어디에 저장합니까?
Ansible은 /etc/ansible/hosts
기본적으로 시도하지만 대체 인벤토리 파일을 찾을 위치를 ansible에 알리는 몇 가지 방법이 있습니다.
-i
명령 줄 스위치를 사용하고 인벤토리 파일 경로를 전달합니다.- 구성 파일
hostfile = path_to_hostfile
의[defaults]
섹션에 추가~/.ansible.cfg
export ANSIBLE_HOSTS=path_to_hostfile
DomaNitro가 그의 답변에서 제안한대로 사용
이제 vagrant 에서 사용 가능한 ansible provisionner 를 사용 하려는지 또는 vagrant 호스트를 수동으로 프로비저닝 하려는지 언급하지 않습니다 .
Vagrant ansible provisionner를 먼저 살펴 보겠습니다.
디렉터리 (예 : 테스트)를 만들고 다음 안에 Vagrant 파일을 만듭니다.
Vagrantfile :
Vagrant.configure("2") do |config|
config.vm.box = "precise64-v1.2"
config.vm.box_url = "http://files.vagrantup.com/precise64.box"
config.vm.define :webapp do |webapp|
webapp.vm.hostname = "webapp.local"
webapp.vm.network :private_network, ip: "192.168.123.2"
webapp.vm.provider "virtualbox" do |v|
v.customize ["modifyvm", :id, "--memory", 200, "--name", "vagrant-docs", "--natdnshostresolver1", "on"]
end
end
#
# Provisionning
#
config.vm.provision :ansible do |ansible|
ansible.playbook = "provision.yml"
ansible.inventory_path = "hosts"
ansible.sudo = true
#
# Use anible.tags if you want to restrict what `vagrant provision`
# Here is a list of possible tags
# ansible.tags = "foo bar"
#
# Use ansible.verbose to see detailled output for ansible runs
# ansible.verbose = 'vvv'
#
# Customize your stuff here
ansible.extra_vars = {
some_var: 42,
foo: "bar",
}
end
end
이제 실행 vagrant up
(또는 vagrant provision
)하면 Vangrant의 ansible 제공자가 Vagrantfile hosts
과 동일한 디렉토리에서 파일 이름 을 찾고 provision.yml
플레이 북 을 적용하려고 시도합니다 .
Vagrant의 ansible provisionner에 의존하지 않고 수동으로 실행할 수도 있습니다.
ansible-playbook -i hosts provision.yml --ask-pass --sudo
Note that Vagrant+Virtualbox+Ansible trio does not always get along well. There are some versions combinations that are problematic. Try to upgrade to the latests versions if you experience issues (especially regarding network).
{shameless_plug} You can find an more extensive example mixing vagrant and ansible here {/shameless_plug}
Good luck !
If you used Brew to install Ansible, you'll most likely find the default hosts file at /usr/local/etc/ansible/hosts
. But, as others pointed out, you may just want to change the default.
I like to use bash environment variables as my base project is shared with other users. you can simply export ANSIBLE_HOSTS=/pathTo/inventory/
this can be a host file or a directory with multi files.
You can also use write it in your ~/.bash_profile so its persistent A bunch of other variables can set that way instead of maintaining a conf file for more info check the source in ansible/lib/ansible/constants.py
If you use Vagrant's ansible provisioner, Vagrant will automatically generate an Ansible hosts file (called vagrant_ansible_inventory_default
) and configure ansible-playbook to use that file. It looks like this:
# Generated by Vagrant
default ansible_ssh_host=127.0.0.1 ansible_ssh_port=2222
It calls the Vagrant host "default", so your plays should either refer to "default" or "all".
Here is a description what to do after installing Ansible on Mac, it worked for me: ansible-tips-and-tricks.readthedocs.io
I downloaded the ansible.cfg file to
/Users/"yourUser"/.ansible
and afterwards you can edit the ansible.cfg file by uncommenting the
inventory = /Users/"yourUser"/.ansible
line and specifying the path to the ansible folder like shown above. You can create the hosts file in this folder then as well. To try it out locally, you can put
localhost ansible_connection=local
in the hosts file and try it out with
ansible -m ping all
참고URL : https://stackoverflow.com/questions/21958727/where-to-store-ansible-host-file-on-mac-os-x
'Program Tip' 카테고리의 다른 글
같음 연산에서 "SQL_Latin1_General_CP1_CI_AS"와 "Latin1_General_CI_AI"간의 데이터 정렬 충돌을 해결할 수 없습니다. (0) | 2020.11.27 |
---|---|
git 콘솔에서 : 배치 파일을 실행 한 다음 git 콘솔로 돌아가려면 어떻게해야합니까? (0) | 2020.11.27 |
dplyr / group_by를 사용하여 행 수 찾기 (0) | 2020.11.27 |
Go 웹 서버를 사용하여 정적 HTML 파일을 어떻게 제공합니까? (0) | 2020.11.27 |
.NET Framework 4.6, .Net Native 및 .Net Core의 차이점 (0) | 2020.11.27 |